Git多分支开发时 merge 合并策略

一 、 develop、master、hotfix 合并策略
项目一般会有develop、master另个分支develop分支部署在测试环境测试,多个开发工程师把自己的commit都提交到develop分支,交给测试工程师来测试;master分支是上线分支,测试没问题的develop分支,在需要上线的时候合并到master分支。

保持master和develop提交历史一致,每次develop合并到master的时候不会出现冲突,保证线上的代码和测试环境环测试完成的代码一致,避免因为合并代码引起线上出问题。

有时候需要临时上线,可以基于master分支建立hotfix分支,测试后合并到master分支。

hotfix分支和develop分支是并行的,hotfix分支合并到master分支后,需要同时合并到develop分支,保证develop分支和master分支提交历史一致。

 

hotfix分为两种情况:

A:hofix和develop分支没有修改相同文件,不会出现冲突

   1)master分支:
 
        a -> b 
 
   2)develop分支
 
        ​a ->b -> c        commit c修改了文件x
 
   3)hotfix分支
 
        a->b-> c1       commit c1 修改了文件y
 
    *合并操作如下:*
 
   1)master merge hotfix
 
        master: a->b->c1
 
   2) develop rebase master
 
        develop: a->b->c1->c    该过程中不会出现冲突(因为没有修改相同文件)
B:hotFix和develop分支修改相同文件,出现冲突

   1)master分支:
 
        a -> b 
 
   2)develop分支
 
        ​a ->b -> c         commit c修改了文件x
 
   3)hotfix分支
 
        a->b-> c1          commit c1 修改了文件x
 
   *合并操作如下:*
 
   1)master merge hotfix
 
        master: a->b->c
 
   2) develop rebase master
 
         develop: a->b->c1->c2    
 
该过程中出现冲突(因为修改了相同文件),需要手动修改冲突,确定最终x文件的版本。commit c2是在c版本上解决冲突后的版本
按照上述流程修改后,develop合并master不需要解决冲突

tip: merge的时候请包含提交的commit信息,使用下面命令操作,这样方便查看历史记录

git merge master --log --no-ff
                                                                                                                                                                                              

                                                                                                                                                                                              

二、 多分支A、B、C并行开发时合并策略
一、项目背景:

项目AB分支同时进行开发时,A分支开发过程中有其他分支B上线,并且B分支上线版本已同步(merge)到master,则须合并已上线版本到正在开发的分支A上,避免A分支上线时覆盖B分支的代码,导致功能倒退。

二、命令行合并步骤:

1.切换到开发分支A:

git checkout 【开发分支】

2.合并master到开发分支(因为B已经同步到master,于是将master合并到A,保证A上涵盖B以上线的最新代码):

git merge --no-ff master

3.将合并后代码推送到远程库:

git push origin 【开发分支】
--------------------- 
作者:黑旋风李鬼 
来源:CSDN 
原文:https://blog.csdn.net/qq_31024823/article/details/82787729 
版权声明:本文为博主原创文章,转载请附上博文链接!

上一篇:Git分支管理


下一篇:git flow