0
我的一個隊友做了一個提交併推送它。它在git樹中導致合併。 問題在於代碼被標記,並且此推送使它看起來像提交位於標記之前。實際情況是提交在標籤之後。 合併後還有其他推送。現在,我想完全從gitk樹中刪除這個提交。我怎樣才能做到這一點?如何恢復在gitk樹中導致合併的提交?
我的一個隊友做了一個提交併推送它。它在git樹中導致合併。 問題在於代碼被標記,並且此推送使它看起來像提交位於標記之前。實際情況是提交在標籤之後。 合併後還有其他推送。現在,我想完全從gitk樹中刪除這個提交。我怎樣才能做到這一點?如何恢復在gitk樹中導致合併的提交?
沒有重寫歷史記錄然後用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 ...
我希望我可以做一個git復位頭或類似的東西,擺脫了從樹上 – user811433 2013-03-19 16:52:44
隨着'git的復位承諾..你可以刪除最後一次提交,但是你必須用'git push -f'來推動你的更改,這會給其他團隊成員帶來麻煩。此外,您的標記將保留,除非您將其移至「git push --tags -f」。 – 2013-03-19 16:58:55