我们有一个master
分支,每个开发人员都有自己的dev分支(不是功能分支),例如dev-john
,dev-rahul
等
现在,约翰频繁地从master
到dev-john
拉并频繁提交到dev-john
他偶尔会将他在dev-john
上的提交合并到master
而不关闭dev-john
我需要一个git流,其中最后一次合并之后的所有提交都作为带有提交消息的单个提交合并到master
中
任何人都可以建议git命令在该流程的每个阶段运行
也欢迎流程修改建议
答案 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
然后,您可以使用以下命令来压缩之后的提交(将提交M4
,D3
和M6
压缩为一个提交,如下图所示的提交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