我已經對存儲庫進行了一系列更改,並且他們被其他人(他們在Windows上編譯,但不在Linux上編譯)恢復。我認爲這些變化仍在歷史中,但我怎樣才能重新獲得這些變化,修復它們,然後重新提交?我該如何修復恢復的git commit?
回答
您是否嘗試恢復恢復?
他們恢復使用
git revert <your commit id>
的復歸本身就是一個承諾,有其自身提交ID你的提交。所以現在你需要做
git revert <the commit id of his revert-commit>
你可以嘗試使用git revert
恢復恢復。您還可以使用git checkout
從提交中恢復文件。或者,您可以使用git cherry-pick -n
重新應用並更改它們。您可以使用git branch
從您的提交中創建一個新分支。可能性(幾乎)是無止境的。 :)
+1:'git cherry-pick --no-commit'是一個不錯的選擇,尤其是因爲您可以重複執行以進一步完成更改 – 2011-03-18 16:52:59
其他答案在這裏解決如何恢復或櫻桃挑選您的提交,但它聽起來像問題,如果你還需要知道如何找到你的提交,所以這裏有一些指導。
如果您只是運行git log
,您應該從最近一次開始查看當前分支歷史記錄中的提交列表。每個提交具有技術上稱爲對象名稱標識符(或「上提交的SHA1SUM」),看起來像這樣:
commit d2d434beeb03e4ee648ca7ca2a1ea1ed09077306
...其次是作者姓名,日期和那名更改的摘要由該提交引入。當你爲git revert
或git cherry-pick
指定對象名稱,你可以給它d2d434beeb03e4ee648ca7ca2a1ea1ed09077306
或只是足夠的字符從對象名稱的開頭是明確的(如d2d434bee
)
git log
有許多選項,可以幫助您跟蹤下載您的提交,如--before
,-S
等,但在這種情況下,您可能特別需要--author=MyLastName
。
一個圖形化的git工具,可以很好地向您展示歷史記錄,並且可以在每個平臺上使用,是gitk --all
。如果您點擊您想要恢復的提交,則可以在窗口中間的「SHA1 ID」字段中複製並粘貼其對象名稱。
- 1. 如何恢復unpushed git commit
- 2. 恢復以前的git commit?
- 3. 修復上次git commit的修復
- 4. 我該如何在git中恢復-aC?
- 5. 如何在git恢復後修復我的代碼?
- 6. 我該如何恢復我的git-daemon存儲庫
- 7. git rebase drop commit不會恢復我的文件
- 8. 如何恢復GIT中的錯誤修復?
- 9. 如何恢復和修復Git中的文件更改
- 10. 我該如何修復VS2017?
- 11. 我該如何修復ViewController?
- 12. 恢復Git錯誤
- 13. git-apply神祕失敗,我該如何解決/修復?
- 14. 如何修復已刪除的git commit分支或引用?
- 15. 用git commit和恢復(我的愚蠢的方式)修復'不間斷的'代碼?
- 16. 我該如何結合2'git commit的
- 17. 如何恢復Git倉庫
- 18. 如何恢復在git中?
- 19. 如何恢復「git rm -r。」?
- 20. 如何在GIT中恢復?
- 21. 我該如何修復我的代碼?
- 22. 我該如何修復我的virtualenv?
- 23. 如何恢復Git軟復位?
- 24. 如何修復我的git配置?
- 25. 如何修復git commit歷史而不丟失數據?
- 26. 如何修復恢復nuget包錯誤?
- 27. 如何做hg恢復 - 所有與git?
- 28. 如何恢復從git提交更改?
- 29. git恢復,然後如何更新github?
- 30. 我該如何完成git commit?
繼續......我需要知道魔術詞,而不僅僅是理論。 – mmr 2011-03-18 16:07:16
對不起,評論的東西對我來說是新的。我將編輯我的帖子。 – 2011-03-18 16:07:37
如果您在查找ID時遇到問題,請向我顯示提交日誌。 – 2011-03-18 16:09:49