我正在使用git而且我正处于这种状态:
X --- Y --------- M1 -------- M2 (my-feature)
/ / /
/ / /
a --- b --- c --- d --- e --- f (stable)
Run Code Online (Sandbox Code Playgroud)
当我们在'my-feature'分支上工作超过一天时就会发生这种情况.从稳定分支到特征分支合并M1和M2.M1和M2可能已合并已解决的冲突.将稳定分支合并到特征分支的整个想法是尽早处理冲突.
功能完成后,我们希望将功能分支重新绑定为一个或两个提交.
问题是当我们进行交互式rebase git向我们展示我们在M1和M2合并期间已经解决的相同合并冲突.
有没有办法让git重用我们在M1和M2中已经完成的合并决策?
Chr*_*her 10
如果合并冲突是相同的,那么这是一个完美的用例git rerere
,它是git中最有用的(尽管鲜为人知的)命令之一.从手册页:
在使用相对长寿命的主题分支的工作流中,开发人员有时需要反复解决相同的冲突,直到主题分支完成(或者合并到"发布"分支,或者发送并接受上游).
此命令通过在初始手动合并中记录冲突的自动登记结果和相应的手部解析结果,并将先前记录的手部分辨率应用于其相应的自动登记结果,来帮助开发人员完成此过程.
git rerere
让您的解决冲突的记录,并在遇到相同的冲突时,它们会自动适用git merge
,git rebase
或git commit
(提交合并时).斯科特·查孔发布了一些很好的例子,在这里,和手册页也值得一读.
您可以启用git rerere
的merge
,并rebase
通过发出以下命令:
git config --global rerere.enabled true
Run Code Online (Sandbox Code Playgroud)
--global
如果您希望仅为单个存储库启用该选项,请删除该标志.
归档时间: |
|
查看次数: |
5579 次 |
最近记录: |