我在git中使用了很多本地主题分支,有时最终导致主题分支之间的依赖关系导致rebase问题.例如,结构如下:
master ---> featureA ---> featureB
\--> featureC
Run Code Online (Sandbox Code Playgroud)
如果master变化和我(和解析)冲突时重订基featureA,然后后来重订featureB到featureA触发同样的冲突(有时是令人振奋的新的为好),因为它试图从重新应用补丁featureA分支.假设之间的实际的补丁featureA,并featureB会干净的应用,如果精挑细选,有没有在这种情况下做底垫,大约有樱桃采摘所有提交的之间的相同效果的方式featureA和featureB?
Phi*_*hil 17
在变基础之后featureA,你可以做到
git rebase --onto featureA oldFeatureA featureB
Run Code Online (Sandbox Code Playgroud)
假设oldFeatureA在重新定位featureA之前表示提交的尖端(您可以在那里保留另一个分支或只记住提交哈希).
这基本上应该与将A和B之间的每次提交挑选到重新定位的A版本上相同.
有关git-rebase的文档(包括一些有用的图片解释,说明在一些更复杂的rebase操作期间会发生什么)
将来,如果您使用大量相互依赖的主题分支,也许您应该考虑使用TopGit(README),这是一种使用Git主题分支管理补丁队列的工具,每个分支一个补丁。或者是管理多个主题分支的工具。
参见例如topgit意味着无需等待评论博客文章。