2013-03-19 121 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