6

我在 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 一样对提交进行 rebase 和重新排序。但是我想交错几个提交并以这样的形状结束。

* 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

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

4

1 回答 1

8

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

git checkout BranchWithF
git rebase -i HEAD~3

当编辑器和提交列表弹出时,添加(阅读:在键盘上键入...)并交错

选啊啊啊
选择cccccc
选择eeeeee

您认为合适的列表。

之后,BranchWithF将拥有所有 6 次提交,您可以丢弃BranchWithE(仍然有 3 次提交)。

于 2010-12-28T20:17:32.870 回答