2013-03-19 60 views
0

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

回答

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 ...
+0

我希望我可以做一个git复位头或类似的东西,摆脱了从树上 – user811433 2013-03-19 16:52:44

+0

随着'git的复位承诺..你可以删除最后一次提交,但是你必须用'git push -f'来推动你的更改,这会给其他团队成员带来麻烦。此外,您的标记将保留,除非您将其移至“git push --tags -f”。 – 2013-03-19 16:58:55