如何维护并行的dev分支,并经常从主推入和推向master?

时间:2018-06-19 22:29:25

标签: git version-control git-flow

我们有一个master分支,每个开发人员都有自己的dev分支(不是功能分支),例如dev-johndev-rahul

现在,约翰频繁地从masterdev-john拉并频繁提交到dev-john

他偶尔会将他在dev-john上的提交合并到master而不关闭dev-john

我需要一个git流,其中最后一次合并之后的所有提交都作为带有提交消息的单个提交合并到master

我试图在下图中解释我的需求 enter image description here

任何人都可以建议git命令在该流程的每个阶段运行

也欢迎

流程修改建议

1 个答案:

答案 0 :(得分:1)

假设现在的提交历史看起来像(M x个合并的提交,R x个提交是dev-rahul分支上的常见提交,D x个提交是master分支上的常见提交,J x个提交是dev-john分支上的常见提交):

…--------R1--------M3---R2---R3---R4---R5      dev-rahul
           \      /                     \
…------D1---M2---D2--------M4---D3-------M6    master
        \                 /      \
…---J3---M1---J4---J5---J6--------M5           dev-john

然后,您可以使用以下命令来压缩之后的提交(将提交M4D3M6压缩为一个提交,如下图所示的提交S) :

git checkout master
git reset --soft HEAD~3
git commit -m 'squash commit S for commits M4, D3 and M6'

提交历史将为:

 …--------R1--------M3---R2---R3---R4---R5    dev-rahul
           \      /                     
…------D1---M2---D2------S                   master
        \              \
         |              M4---D3    
         |              |      \
…---J3---M1---J4---J5---J6------M5           dev-john