复杂的交互式rebase一步到位?

Cra*_*lin 6 git rebase git-rebase

我在这个形状的git中有两个分支.

* fffffff commit f
* ddddddd commit d
* bbbbbbb commit b
| * eeeeeee commit e
| * ccccccc commit c
| * aaaaaaa commit a
|/  
* 2222222 base revision 2
* 1111111 base revision 1
Run Code Online (Sandbox Code Playgroud)

我想像使用rebase --interactive那样重新定义和重新排序提交.但是,我想交错几个提交,并结束这样的形状.

* ffffff2 commit f
* eeeeee2 commit e
* dddddd2 commit d
* cccccc2 commit c
* bbbbbb2 commit b
* aaaaaaa commit a
* 2222222 base revision 2
* 1111111 base revision 1
Run Code Online (Sandbox Code Playgroud)

有没有办法一步完成这个rebase?我尝试在两个步骤中通过在commit e之上重新设置提交b然后执行第二个交互式rebase来对所有提交进行排序.问题是我得到合并冲突(例如,在commit b和commit e之间),否则我将看不到(通过在提交之后放置提交b)并且不值得解决冲突.

use*_*515 8

例如,从任何一个分支(BranchWithFBranchWithE)开始并发出交互式rebase

git checkout BranchWithF
git rebase -i HEAD~3

当弹出编辑器和提交列表时,添加(读取:键盘上的类型......)并交错

pick aaaaaaa
pick ccccccc
pick eeeeeee

如你所愿,到列表中.

之后,BranchWithF将拥有所有6个提交,你可以扔掉BranchWithE(它仍有3个提交).