Rebase "fixup" 提交到之前的合并提交

Rebase "fixup" commit into prior merge commit

我执行了以下合并:

A---B---C---E (HEAD, merge of C and D)
           /
      D---|

但我注意到 E 中的一些问题,并在 F 中修复了它们:

A---B---C---E---F (HEAD)
           /
      D---|

我想修改提交 E 以便它包含 F 中所做的 "fixup" 更改。

当我尝试 git rebase -p -i HEAD~2 时,它会尝试创建一个 常规(不合并) 提交,甚至试图让我重新解决我已经解决的冲突在为 E.

执行合并时

我如何修复 提交 E 以便它包含在 F 中所做的更改?

git reset --soft E
git commit --amend

应该够了。它将重新创建合并提交(使用与 E 不同的散列,我们称之为 E'),同时插入您在 EF 之间所做的任何更改。