将"fixup"提交合并到之前的合并提交中

4
我已执行以下合并操作:
A---B---C---E (HEAD, merge of C and D)
           /
      D---|

不过我注意到 E 中存在一些问题,并在 F 中进行了修复:

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

我希望修改提交E,使其包含在F中进行的“修复”更改。

当我尝试使用git rebase -p -i HEAD~2时,它会尝试创建一个普通(非合并)提交,并且甚至会要求我再次解决已经解决过的与E合并时的冲突。

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

1个回答

6
git reset --soft E
git commit --amend

应该足够了。它将重新创建一个合并提交(哈希不同于 E,我们称其为 E'),并插入您在 EF 之间所做的任何更改。


1
git reset --soft只是一个宝石。 - eftshift0
1
如果在“E”之后有一个“G”(“H”,“I”,...)提交会怎样? - Dan M.
@DanM. 然后这些其他提交中的更改也将被分组到新提交中。 - Romain Valeri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接