git 重定依存主题分支的基础

vsnjm48y  于 2023-01-15  发布在  Git
关注(0)|答案(3)|浏览(149)

我在git中使用了很多本地主题分支,有时候会因为主题分支之间的依赖关系而导致重定基问题。例如,使用如下结构:

master ---> featureA ---> featureB
                     \--> featureC

如果master改变了,我得到当对featureA进行重新定基时(并解决)冲突,然后将featureB重新定基到featureA上触发相同的冲突(有时也会出现令人兴奋的新补丁),因为它尝试重新应用featureA分支中的补丁。假设featureAfeatureB之间的实际补丁在挑选时会干净地应用,在这种情况下,是否有一种方法可以执行rebase,其效果与在featureAfeatureB之间挑选所有提交的效果大致相同?

a8jjtwal

a8jjtwal1#

在对featureA进行重新定基之后,您可以执行以下操作

git rebase --onto featureA oldFeatureA featureB

假设oldFeatureA表示在你重定基之前featureA顶端的提交(你可以在那里保留另一个分支或者只记住提交哈希)。
这基本上应该与将A和B之间的每个提交都挑选到A的重定基版本上是相同的。
Documentation on git-rebase(包括一些有用的图形说明,说明在一些更复杂的变基操作中会发生什么)

ndasle7k

ndasle7k2#

将来,如果你要处理很多相互依赖的主题分支,也许你应该考虑使用TopGitREADME),这是一个使用Git主题分支管理补丁队列的工具,每个分支一个补丁;或者可替换地是管理多个主题分支的工具。
参见例如topgit Means Never Having to Wait for Reviews博客文章。

db2dz4w8

db2dz4w83#

git rebase -–update-refs

(在Git 2.38之后)

相关问题