重新依赖主题分支

Kai*_*Kai 15 git rebase

我在git中使用了很多本地主题分支,有时最终导致主题分支之间的依赖关系导致rebase问题.例如,结构如下:

master ---> featureA ---> featureB
                     \--> featureC
Run Code Online (Sandbox Code Playgroud)

如果master变化和我(和解析)冲突时重订基featureA,然后后来重订featureBfeatureA触发同样的冲突(有时是令人振奋的新的为好),因为它试图从重新应用补丁featureA分支.假设之间的实际的补丁featureA,并featureB会干净的应用,如果精挑细选,有没有在这种情况下做底垫,大约有樱桃采摘所有提交的之间的相同效果的方式featureAfeatureB

Phi*_*hil 17

在变基础之后featureA,你可以做到

git rebase --onto featureA oldFeatureA featureB
Run Code Online (Sandbox Code Playgroud)

假设oldFeatureA在重新定位featureA之前表示提交的尖端(您可以在那里保留另一个分支或只记住提交哈希).

这基本上应该与将A和B之间的每次提交挑选到重新定位的A版本上相同.

有关git-rebase的文档(包括一些有用的图片解释,说明在一些更复杂的rebase操作期间会发生什么)

  • 应该可以使用`featureA @ {1}`而不是`oldFeatureA`,假设rebase是该分支的最后一次更改.否则使用类似`@ {2}`,`@ {3}`或`@ {一小时前}`的东西 (5认同)

Jak*_*ski 6

将来,如果您使用大量相互依赖的主题分支,也许您应该考虑使用TopGitREADME),这是一种使用Git主题分支管理补丁队列的工具,每个分支一个补丁。或者是管理多个主题分支的工具。

参见例如topgit意味着无需等待评论博客文章。