重新定位主题分支而不是合并的缺点是什么?

时间:2012-04-03 20:11:07

标签: git branching-and-merging git-rebase git-merge

我目前的模式是merge主题分支到我的主要开发分支一旦完成。最近日志一直很疯狂,我正在考虑转而使用rebase

对主题/功能分支使用rebase代替merge会有哪些不利之处?

3 个答案:

答案 0 :(得分:6)

使用rebase的主要缺点是你应该(必读)只在本地使用rebase。也就是说,一旦推出了某些东西,请不要在此之后再改变它。重写历史很好,花花公子,但是当你开始在遥控器上弄乱历史时,事情变得非常混乱。

修改

另一个缺点是真实的历史实际上已经丢失了。这意味着,除了其他方面之外,不可能(很容易)回到主题分支,因为它看起来像是主分支的一部分。它还使恢复变更更加痛苦,因为你必须一次挑选一个提交,尽力记住哪些来自原始主题分支。如果你使用交互式rebase,或者更糟糕的是 - 压低你的提交 - 那么这可能是一个巨大的麻烦。

答案 1 :(得分:2)

缺点包括修订版在开发过程中与实际状态不匹配,无法使用--first-parent之类的标记隐藏合并之间的提交,如果您打算稍后重新分配,则难以共享您的分支。如果您的日志看起来很疯狂,请再次查看git help log。机会是,有一些标志组合可以让它看起来如你所愿,而不会在需要时牺牲灵活性。

答案 2 :(得分:0)

另一个原因:解决冲突通常更加困难。如果一个功能中有多个提交,则可能多次更改了相同的代码。如果发生冲突,则必须多次修复。合并后,您只需一次。