我在这个形状的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
我想像使用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
有没有办法一步完成这个rebase?我尝试通过在commit e之上重新设置提交b然后再做第二个交互式rebase来分两步来分两步完成提交。问题是我得到合并冲突(例如,在提交b和提交e之间),否则我将看不到(通过在提交之后放置提交b)并且它不值得解决冲突。
答案 0 :(得分:8)
从任何一个分支开始( BranchWithF 或 BranchWithE )并发出交互式rebase,例如
git checkout BranchWithF git rebase -i HEAD~3
当弹出编辑器和提交列表时,添加(读取:键盘上的类型......)并交错
pick aaaaaaa pick ccccccc pick eeeeeee
到你认为合适的列表。
之后, BranchWithF 将拥有所有6次提交,你可以扔掉 BranchWithE (仍有3次提交)。