乐趣区

Git常用套路03合并分支

  • 本文前提:本地和远程存在 master、test、dev 三个分支,并且一一对应,本地 dev 开发完成后,要合并到 test,test 测试完成后合并到 master

1、从 dev 合并到 test

 正常的场景中,master 和 test 两个分支是禁止普通开发人员直接 push 的,现在讨论的是具有权限的人员的操作。在开发当中无论是否要合并分支,无论在哪个分支,注意本地分支要在 commit 以后 push 到远程,要首先保持同一个分支的一致性。1 首先切换到 dev 分支,执行 commit 和 push

2 有权限的人员在每个分支 git pull 拉取所有代码以后,从 dev 转到 test
git checkout test

3 然后从 dev 合并到 test
git merge dev

注意:这种合并一般情况下使用的是快进模式(Fast-forward),也就是直接把 test 指向 dev 的当前提交,所以合并速度非常快。但这种模式下,删除 dev 分支后,会丢掉分支信息。如果要强制禁用 Fast forward 模式,Git 就会在 merge 时生成一个新的 commit,这样,从分支历史上就可以看出分支信息。命令如下:git merge --no-ff -m "merge dev to test with no-ff" dev

因为本次合并要创建一个新的 commit,所以加上 - m 参数,把 commit 描述写进去。建议开发中都用这种 no-ff 模式

4 现在本地 dev 已经合并到 test 了,下面把本地 test 的变化提交到远程(当前在 test 分支):git push

我们在远程服务器上面看一下 test 分支的网络图:

2、从 test 合并到 master

 操作流程和前面的差不多:1 git checkout master

2 git merge --no-ff -m "merge test to master with no-ff" test

3 git push

我们在远程服务器上面看一下 master 分支的网络图:

3、其它情况

 有时候在远程仓库私服上面禁止了所有人的 push 操作,那合并分支只能在私服页面上进行,这种操作一般也是由权限高的人进行的

不过 gitlab 在这方面很多老版本都有问题,会出现报错页面,大家可以多试几次。。。

退出移动版