过时的分支,应该使用git merge还是rebase?

3

我有一个主分支和另一个分支B,假设B是主分支的衍生版本。 B分支是实验性的,并经历了许多修改,但已经一年没有更新过。 在这一年中,主分支已经向前推进了很多,有无数次提交。

但现在的情况要求将B分支合并到主分支中。 在这种情况下,最好使用哪种策略,git merge还是rebase?


1
小心;这里“fork”的术语很可能是一个误称。你可能的意思是分支B源自于master,或者类似的东西。 - jub0bs
有其他人拥有分支B的本地副本吗?您是否关心保留历史记录?如果您的回答是no/no,则进行变基。 - Andrew C
1
如果您正在合并master到B并更新B,则拥有B的本地副本仅会引起关注。根据我阅读您的问题,这不是您的情况。您要将主分支向前移动到B的提交。因此,如果是我的话,我会从master上进行B的变基,解决合并冲突,然后继续操作。git fetch -pgit checkout Bgit rebase origin/master如果出现合并冲突:git mergetool如果我不想要来自B的所有更改,则可以将B中的提交选取到主分支中。 - Doug Simmons
1个回答

1
如果需要合并的工作很多并且希望逐步进行(以测试结果),直接的合并可能会有问题。你可以尝试反复变基到较新版本的主分支,直到最终到达顶端。请注意,您无需对B本身进行变基(如果它是公共的) - 只需复制B并将其变基即可。在这种情况下值得了解的另一个工具是git的rerere

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接