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

时间:2019-12-23 14:36:20

标签: git rebase squash

我执行了以下合并:

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 个答案:

答案 0 :(得分:3)

git reset --soft E
git commit --amend

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