我所在的分支有一个未发布的合并提交,后面还有许多与其不相关的其他本地提交。我想相对于其中一些提交移动该提交:
不幸的是,当我这样做时:
git rebase -i <sha-of-merge-commit>^
交互式变基不是只得到像
pick <sha-of-merge-commit>
这样我可以重新定位的一行,而是扩展了合并中的所有单独提交,其中有近三十个。在 rebase TODO 缓冲区中,所有这些都有一个 pick
行,并且 <sha-of-merge-commit>
不会出现在 TODO 中。
我们如何让
git rebase -i
将合并提交视为普通提交,而不引入来自第二个父级的提交?
看起来这就是
--preserve-merges
的 rebase
的作用。