欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-19 15:53:14
...

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

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

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

       在结合这幅图:   【Git之窗】(十三)远程分支之间如何合并

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

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

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

      其次,如何操作?  

      

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

       1.test--master

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

       2.test--dev

     【Git之窗】(十三)远程分支之间如何合并       如图所示,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 aaa@qq.com:zhangzhenhua92/test.git
      克隆成功:

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

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


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

git checkout -b dev origin/dev
      【Git之窗】(十三)远程分支之间如何合并
      【Git之窗】(十三)远程分支之间如何合并

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

      

       3.master合并dev分支

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

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

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

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


       4. push到远程仓库

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

       之后,参考github界面:

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

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

      

       总结:

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

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


       扩展:

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

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

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


       That's all.