我在git中使用了很多本地主题分支,有时候会因为主题分支之间的依赖关系而导致重定基问题。例如,使用如下结构:
master ---> featureA ---> featureB
\--> featureC
如果master
改变了,我得到当对featureA
进行重新定基时(并解决)冲突,然后将featureB
重新定基到featureA
上触发相同的冲突(有时也会出现令人兴奋的新补丁),因为它尝试重新应用featureA
分支中的补丁。假设featureA
和featureB
之间的实际补丁在挑选时会干净地应用,在这种情况下,是否有一种方法可以执行rebase,其效果与在featureA
和featureB
之间挑选所有提交的效果大致相同?
3条答案
按热度按时间a8jjtwal1#
在对
featureA
进行重新定基之后,您可以执行以下操作假设
oldFeatureA
表示在你重定基之前featureA
顶端的提交(你可以在那里保留另一个分支或者只记住提交哈希)。这基本上应该与将A和B之间的每个提交都挑选到A的重定基版本上是相同的。
Documentation on git-rebase(包括一些有用的图形说明,说明在一些更复杂的变基操作中会发生什么)
ndasle7k2#
将来,如果你要处理很多相互依赖的主题分支,也许你应该考虑使用TopGit(README),这是一个使用Git主题分支管理补丁队列的工具,每个分支一个补丁;或者可替换地是管理多个主题分支的工具。
参见例如topgit Means Never Having to Wait for Reviews博客文章。
db2dz4w83#
(在Git 2.38之后)