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 &n前天英语
bsp; commit c1 修改了⽂件y
*合并操作如下:*
1)master merge hotfix
master: a->b->c1
2) develop reba 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) de早安温馨句子
velop reba 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.将合并后代码推送到远程库: