主分支合并 与合并的孩子的Git rebase分支




主分支合并 (2)

今天我面临着一个问题。 我的队友从主人创建分支。 他在这个分支中开发了一个功能,然后在子功能分支中开发了两个子功能。 最后,他对整个事情做了两次重构。 所以...

     C--D    E--F             | subfeatures
    /    \  /    \
   B------M1------M2--G--H    | feature
  /
 A-------------------K        | master

通常我们在不进行快速合并之前将特征分支重新绑定到主。 但是,当然,这个rebase失败了。 Rebased功能分支变得像这样:

     B'--C'--D'--E'--F'--G'--H'
    /
A--K

C&D的指针当然是错的,所以我也得到了两个“空中”的子功能分支。 如果子功能分支没有合并到功能中,我知道如何解决这个问题,但此时我感到困惑。 我挑选了一些重新设计的恢复分支,并再次合并。 这里是一个更简单的方法来做到这一点?


你是否亲手挑选了一个个?

只需运行git rebase -i master feature并根据需要重写历史记录。


请注意,你需要一个git1.7.6 + git rebase --preserve-merges merges才能正常工作。

长话短说:你刚刚完成了一个合并,有人推动了一个提交,然后才能推动你的。 解决的办法是让git意识到你所做的合并。

git rebase --preserve-merges <upstream>

要么

git rebase -p <upstream>

但是有一个问题,如果你的合并有冲突,你解决了,他们不会被分拣机器拾起。
最后你将会再次解决冲突......至少在git 1.7.5.4版本中是这样的

(这将要求git rerere





rebase