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在这方面很多老版本都有问题,会出现报错页面,大家可以多试几次。。。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天和一个十六七岁的小少年聊天,他因为家境不是很好,从小父母离异。他爸爸只是个普通的工人,月薪三千左右,住在四五线...
    加州小调阅读 1,670评论 0 1
  • 像我这种人,不适合谈恋爱,更不适合结婚。我的情绪太不稳定,又敏感,想的太多,总是揣测对方的心意,然后又一遍遍的想是...
    山火冷泉阅读 5,212评论 1 0