【Git之窗】(十三)远程分支之间如何合并

       如图所示,是小编公司使用git作为VCS时候的应用模型:

            

       由图可知,在服务器上的远程仓库,对应有两个分支,1.master 2.dev,前者用于和Jenkins关联,用作生产版本的代码,后者和本地开发人员关联,每个人在本地仓库中提交代码后,都push到远程的dev上面。

       在结合这幅图:   

       如图中所示(图上的分支都是远程仓库中的),黄色的分支是dev分支,从dev版本迭代过程中,单元测试没有问题了,此时会把代码合并到release,交由测试部门进行测试,测试通过之后,合并到master分支上面,我画的第一幅图简化了这个过程,那么现在问题出来了。

      介绍了大致的工作流程之后,如何将远程的dev合并到远程的master上去呢?

      首先,远程分支的合并工作是必须由git管理员来操作的。

      其次,如何操作?  

      

       举个简单的例子,我在我的GitHub上面新建了一个命为test的repository,并且除了master默认分支之外,新建了dev分支。

       1.test--master

  

       2.test--dev

            如图所示,master和dev上分别有不同的代码:

       1.master: vincent.txt

       2.dev: vincent.txt以及dev


       现在要把远程的dev合并到远程master上面,思路如下:

       1.clone项目到本地,此时默认会把master分支clone一份到本地。

       2.本地分支上新建一个dev分支,名字和远程的dev一样,复制一份远程dev上面的代码,切换到本地master,合并本地dev。

       3.解决合并过程中的冲突,之后Push到远程master,效果就是远程的dev合并到了远程的master上面。


       测试步骤:

       1.clone

git clone git@github.com:zhangzhenhua92/test.git
      克隆成功:

      

      


      2.把远程dev“复制”到本地

git checkout -b dev origin/dev
      
      

       可见,此时本地仓库中的master分支和dev分支已经对应上了远程仓库中的master以及dev。

      

       3.master合并dev分支

git merge dev
       

       之后文件夹下,看到master分支也可以看到dev这个文件了。

       

       (Pay Attention: 这个时候,如果有冲突,就在这里解决冲突!!!)


       4. push到远程仓库

       

       之后,参考github界面:

   

       如图,此时远程的dev已经合并到了远程的master上面了。

      

       总结:

       1.该操作务必由git管理员操作。

       2.选择在local仓库中去合并,为的是合并分支过程中,一旦冲突,方便解决。


       扩展:

       在执行“git checkout -b dev origin/dev”的时候报错:“Cannot update paths and switch to branch 'dev' at the same time.”,可以参考StackOverFlow上的解决方案:

       https://stackoverflow.com/questions/17137441/can-not-create-a-local-and-remote-branch-tracking-at-the-same-time

      


       That's all.



  • 9
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值