如何还原导致gitk树中合并的提交?

如何还原导致gitk树中合并的提交?,git,merge,Git,Merge,我的一个队友做出了承诺并推动了它。它导致git树中的合并。 问题是代码被标记了,这个推送使它看起来像是提交在标记之前。实际情况是提交在标记之后。 此合并后还有其他推送。现在,我想从gitk树中完全删除这个提交。我如何才能做到这一点?如果不重写历史记录,然后使用git push-f…推送它,就无法更改gitk树的外观。如果要还原合并提交本身(合并到分支中的更改),可以像使用普通提交一样使用git revert。它将创建一个新的提交,恢复合并提交中的更改 从树中删除合并提交的简单方法是 git c

我的一个队友做出了承诺并推动了它。它导致git树中的合并。 问题是代码被标记了,这个推送使它看起来像是提交在标记之前。实际情况是提交在标记之后。
此合并后还有其他推送。现在,我想从gitk树中完全删除这个提交。我如何才能做到这一点?

如果不重写历史记录,然后使用
git push-f…
推送它,就无法更改gitk树的外观。如果要还原合并提交本身(合并到分支中的更改),可以像使用普通提交一样使用
git revert
。它将创建一个新的提交,恢复合并提交中的更改

从树中删除合并提交的简单方法是

  • git checkout-b测试(创建一个临时分支进行测试)
  • git分行TMP
  • git-rebase-TMP-i
您必须在编辑器中删除合并到您的分支中的其他分支的所有提交。如果一切顺利:

  • git分支-f您的分支测试
  • git推送-f…

我希望我可以做一个git reset HEAD或类似的操作,并通过
git reset…
从树中删除提交。您可以删除最后一次提交,但随后必须使用
git push-f
来推动更改,这将给其他团队成员带来麻烦。此外,除非您移动标签并将其与git push--tags-f一起放置,否则标签将保持不变。