在阅读完手册页并在此处搜索一些问题之后,我似乎无法想出这个Git场景,所以我希望你们中的一些人可以帮助我。
这是情况。我有两个分支,我们称之为master
和experimental
,提交图如下所示:
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
获取所有提交的列表并选择相关的提交。这可能吗?
答案 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}
的更多信息,请访问: