交互式樱桃挑选提交与rebase

时间:2014-07-18 14:26:35

标签: git

在阅读完手册页并在此处搜索一些问题之后,我似乎无法想出这个Git场景,所以我希望你们中的一些人可以帮助我。

这是情况。我有两个分支,我们称之为masterexperimental,提交图如下所示:

A---B---C---D  master
     \
      E---F---G---H  experimental

我想在这里结束:

A---B---C---D---F---H  master
     \
      E---F---G---H  experimental

我可以通过从experimental连续挑选所有相关提交来实现这一点,但我想使用git rebase -i获取所有提交的列表并选择相关的提交。这可能吗?

1 个答案:

答案 0 :(得分:3)

首先,可以使用新的&{39; experimental'标记您的tmp分支。分支:

git checkout experimental
git checkout -b tmp

然后做你的变种:

git rebase -i master

删除你不想要的所有提交。

         (master)
            |
A---B---C---D---F'---H'  tmp
     \
      E---F---G---H  experimental

最后,将master合并到tmp

git checkout -B master # reset master to tmp
git branch -d tmp

由于rebase移动了一个分支,并且由于master必须更改,jthill指出in the comments最短的解决方案:

git checkout -B master experimental
git rebase -i master@{1}

有关HEAD@{1}的更多信息,请访问: