使用子分支在git rebase中保留正确的祖先

时间:2016-02-29 21:09:02

标签: git git-rebase

我有一个看起来有点像这样的回购:

*-*-*-*-master
   \-*-*-*-feature1
          \-*-*-feature1-experiment

feature1-experiment包含基于feature1中已构建内容的实验性功能,或者它可能只是解决问题的另一种方法。 feature1feature1-experiment都是本地分支。

现在,我的其他人已将更改推送到master,我将重新定义feature1以获得这些更改。现在feature1-experiment“不同步”,因为feature1中的提交在重新定位后重新应用,使其指向旧提交。

在我看来,这就是它的样子:

*-*-*-*-master
  |    \-*-*-*-rebased_feature1
  |
   \-*-*-*-old_feature1
          \-*-*feature1-experiment

而我想要的更接近:

*-*-*-*-master
       \-*-*-*-rebased_feature1
              \-rebased_feature1-experiment

有没有办法让它变成一个分支,从它创建的所有分支得到应用于它们的相同操作?如果没有,手动执行此操作的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

您需要手动执行此操作。您还可以考虑将feature1-experiment合并到feature1中。在过程和最终合并方面,长期存在的分支可能很难处理。

重新定位feature1后,运行

git rebase feature1 feature1-experiment

上面的命令是执行

的浓缩方式
git checkout feature1-experiment
git rebase feature1