[英]Merge/rebase workflow
我正在更改git-merge-workflow的过程中遇到以下问题:
到目前为止,每当我发布新版本时,我就一直将(--no-ff)在develop
分支上的更改合并回master
。 这将生成一个新的merge-commit,其中包含所有develop
-commits的历史记录(--log)。 我意识到,这是次优的,并希望真正做到快进从我的合并develop
分公司master
(已经改变我犯下的消息develop
,以反映一个“干净”的方式我的变化)。
我当前的问题:最近一次对master
的提交仍然是最后一次的merge-commit,因为我不能从develop
到master
进行ff-merge,因为2个分支“发散了”(合并-commit上缺少develop
)。
我想解决这个问题的想法是在开发中: git rebase master
,它将拉入这个merge-commit,然后使我能够在master上进行git merge develop
。 但是,这会产生一个新的提交上develop
(这个特别的合并提交)或将Git的足够聪明,认识到这种变化的合并提交已经部分develop
?
git rebase master
在develop
会很好地满足您的目的。
如果您的分支当前是这样的:
A-B-C-D-E <-- master
/
F-G-H-I-J <-- develop
然后它们就会像这样结束(因为IJ
是从E
IJ
的唯一位):
A-B-C-D-E <-- master
\
I'-J' <-- develop
然后,它会像下面这样快速合并回master:
A-B-C-D-E-I'-J' <-- master
您的方法应该允许它工作。 当然,您可以解决此问题的另一种方法是在下一次合并时完全删除您的developer分支,以防重新部署失败。 然后,从master分支出一个新的开发,并从那时起重新建立基础。
在我以前的公司中,我们也尝试将工作流程从合并切换到重新定基。 但是最终由于合并不同的分支而出现了各种奇怪的问题。 直接从master重新开始在development分支上感觉更干净,更安全。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.