使用 git 重新建立非线性提交链的基础

Rebasing a chain of nonlinear commits with git

我想在打开对原始存储库的拉取请求之前稍微完善一下我的(凌乱的)功能分支。我有大约 100 个提交,我想合并成 3 或 4 个。所有提交都已经推送到我自己的远程仓库。因为我想在我自己的仓库中保留许多提交,所以我在我分叉原始仓库的地方创建了一个新分支。这个分支应该包含我的工作的精确副本,但提交更少。

不幸的是,将我当前的 HEAD 合并到新分支并应用 rebase -i 在合并提交 (x) 时失败,并告诉我它无法应用补丁。假设我的历史如下所示:

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

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

这应该与 git rebase -i -p commit 一起工作,但以重做合并提交(即重新修复合并冲突)为代价。

来自帮助:

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

但是,在您的情况下,仅修复合并冲突并继续变基实际上可能有效。