如何保持一个 rebase'd 提交并取消请求下一个?

How to keep one rebase'd commit and un-ask for the next ones?

我启动了一个交互式变基,并从 "later in the history" 中挑选了两个提交尝试将它们推送到 "earlier in the history"。所以我想做的是:

E<-D<-C<-B<-A => E<-B<-A<-D<-C

第一个提交动作 (B) 涉及合并工作,但现在已经完成了。所以它看起来不错并且在正确的位置。但是当我这样做时 rebase --continue 我遇到了很多关于 A 的冲突。我意识到它对我没有注意到的 D 有很深的依赖性,我不应该试图以这种方式移动它。

但我不想做 rebase --abort 因为 B 上的工作做得很好。我不想 --skip 它,如果那意味着完全扔掉 A。 :-/

我如何要求它忘记我要求的 A 正在进行的合并的当前残骸......并表现得好像 B 是我唯一的要求?所以现在我的目标是完成变基并获得:

E<-B<-D<-C<-A

您甚至可以在变基过程中创建新分支。刚刚

git checkout -b only-b
git rebase --abort
git checkout only-b