从主分支,您可以使用--preserve-merges
选项(或缩写为-p
)来保留合并的情况,直接将其变基在新的b3
上:
git rebase -p feature
这样,当Git进行变基操作时,它将不会尝试将合并操作压缩为单个提交,而是在新的基础提交上重新创建该合并操作。因此,您的历史记录将如下所示:
master
↓
a1 -- a2 -- a3 --------- a4' -- a5'
\ /
\ /
b1 -- b2 -- b3
↑
feature
相对于不使用--preserve-merges
标志的情况,有以下区别:
master
↓
a1 -- a2 a3' -- a4' -- a5'
\ /
\ /
b1 -- b2 -- b3
↑
feature
x'
表示这是基于原始 x
重新创建的提交 :) - poke
git rebase -p b3
命令。这样可以保留合并,但将其移动到b3
之后。 - pokea4
状态才能这样做吗?还是在a5
状态下也可以工作? - ebosi