回答
如果你還沒有推這種變化的是,git reset --hard HEAD^
否則,恢復的復歸是完全正常的。另一種方法是git checkout HEAD^^ -- .
然後git add -A && git commit
。
git cherry-pick <original commit sha>
將使原有的副本提交,基本上是重新申請的提交
還原的還原會做同樣的事情,有一個混亂的提交信息:
git revert <commit sha of the revert>
無論是的這些方法將允許您在不覆蓋歷史的情況下登錄git push
,因爲它會在還原後創建新的提交。
當鍵入犯煞,你通常只需要前5個或6個字符:
git cherry-pick 6bfabc
它看起來愚笨,對我來說。但是我一直處於同樣的狀況,而且我還是回覆了提交的提交。我做了數字還原,所以我必須爲每個'還原提交'做出還原。
現在我的提交歷史看起來有點奇怪。
這是一個寵物項目,所以它是確定。但是對於現實生活中的項目,我會優先選擇上次提交,然後再恢復所有已恢復的代碼。
您可能會對我的另一個問題的答案感興趣:http://stackoverflow.com/questions/10415565/how-to-revert-multiple-commits-as-part-of-a-single-commit – JimmidyJoo 2015-09-24 14:14:52
您可以避免自動提交,並在恢復時使用--no-commit標誌選擇提交消息,然後提交相關消息 – 2017-07-16 06:09:20
如果你不喜歡「恢復還原」的想法(特別是當這意味着丟失許多提交的歷史信息),你總是可以前往關於"Reverting a faulty merge"的git文檔。
鑑於下列初始狀態
P---o---o---M---x---x---W---x
\ /
A---B---C----------------D---E <-- fixed-up topic branch
(W是你的合併M的初始復歸; d和E是修復您最初破碎特性分支/提交)
現在,您可以簡單地重放提交A至E,使他們沒有「屬於」還原後的合併:
$ git checkout E
$ git rebase --no-ff P
您的分支的新副本,現在可以合併爲master
股份公司ain:
A'---B'---C'------------D'---E' <-- recreated topic branch
/
P---o---o---M---x---x---W---x
\ /
A---B---C----------------D---E
- 1. 還原一個Git合併提交,然後恢復該還原
- 2. 如何完成還原提交以及如何還原大量提交
- 3. Git發出提交併還原
- 4. Git:暫時還原推送提交
- 5. 還原交互式git rebase
- 6. Git的合併,然後還原,然後還原的還原
- 7. 還原SVN中的提交?
- 8. GIT ...還原
- 9. Aptana git還原
- 10. 還原式未提交
- 11. git重新提交已還原的提交
- 12. 還原使用Git
- 13. 還原git的結帳
- 14. Git恢復還原還是什麼?
- 15. 還原git的重置頭最後一次提交的變化
- 16. Git還原後合併
- 17. git「還原」當前目錄
- 18. 還原一個Git檔案
- 19. git-hub for windows還原
- 20. 還原合併Git-Flow
- 21. Git還原或硬重置
- 22. 在GIT中還原未提交的文件
- 23. 還原或重置Git中的遠程提交?
- 24. 從git中的舊提交還原文件
- 25. 將GitHub PR還原爲特定提交
- 26. 將其還原爲提交文件
- 27. 在本地系統中還原Git提交
- 28. git沒有提交分支 - 還原變化
- 29. 取消http.get請求並還原數據
- 30. 多個還原式還原器
不恢復恢復工作? – Mat 2012-01-04 14:00:47
[我該如何修復還原的git commit?](http:// stackoverflow。com/questions/5354682/how-can-i-fix-a-reverted-git-commit) – 2017-04-11 12:14:12