【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 aaa@qq.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.”,可以参考*上的解决方案:
https://*.com/questions/17137441/can-not-create-a-local-and-remote-branch-tracking-at-the-same-time
That's all.
上一篇: 任务分配问题 | 分支限界法(限下界)
下一篇: MyBatis初探之环境的配置