用git重构非线性提交链

eimct9ow  于 2023-04-28  发布在  Git
关注(0)|答案(1)|浏览(114)

我想在打开一个pull request到原始repo之前稍微润色一下我的(凌乱的)特性分支。我有大约100个提交,我想合并成3或4个。所有提交都已经被推送到我自己的远程仓库。因为我想在我自己的repo中保留许多提交,所以我在我fork原始repo的地方创建了一个新分支。这个分支应该包含我的工作的精确副本,但提交较少。
不幸的是,将我当前的HEAD合并到新分支并应用rebase -i在合并提交(x)时失败,并告诉我它无法应用补丁。假设我的历史记录如下所示:

o--o--o--o--o--o-----x
                \     \
                 o--o--o--o--o

有什么办法可以让我通过这个提交吗?

polkgigr

polkgigr1#

更新

如果你使用Git 2。34.0或更新版本:使用--rebase-merges

git rebase --interactive --rebase-merges

--preserve-merges不能再用了。
这应该可以在git rebase -i -p commit上工作,但代价是重做合并提交(即,重新修复合并冲突)。
从帮助:

-p, --preserve-merges try to recreate merges instead of ignoring them

然而,在您的例子中,仅仅修复合并冲突并继续变基实际上是可行的。

相关问题