如何恢复在gitk树中导致合并的提交?

时间:2013-03-19 16:29:32

标签: git merge

我的一位队友做了一次提交并推了推。它导致了git树中的合并。 问题是代码被标记,并且此推送使得它看起来像是在标记之前提交。实际情况是提交在标记之后。 合并后还有其他推动。现在,我想从gitk树中完全删除此提交。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

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

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

  • git checkout -b TESTING(创建一个临时分支进行测试)
  • git branch TMP <commit-on-YOUR-branch-just-before-merge>
  • git rebase TMP -i

您必须在编辑器中删除已合并到您的分支中的其他分支的所有提交。如果一切顺利的话:

  • git branch -f YOUR_BRANCH TESTING
  • git push -f ...