将“修复”提交重新设置为先前的合并提交

Cra*_*tis 4 git git-rebase squash git-interactive-rebase

我已经执行了以下合并:

A---B---C---E (HEAD, merge of C and D)
           /
      D---|
Run Code Online (Sandbox Code Playgroud)

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

A---B---C---E---F (HEAD)
           /
      D---|
Run Code Online (Sandbox Code Playgroud)

我想修改提交,E以便它包含F.

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

如何修复提交E,使其包含中所做的更改F

Rom*_*eri 6

git reset --soft E
git commit --amend
Run Code Online (Sandbox Code Playgroud)

应该足够了。它将重新创建合并提交(具有与 不同的哈希值E,我们称之为E'),同时插入您在E和 之间所做的任何更改F