如果提交了更改,但是您恢復了該提交,那麼將創建一個恢復提交,其中包含刪除所有文件的更改。如果是這種情況,可以先嚐試輸入git log
以查看master
分支頭部提交後的提交歷史記錄。通過運行git checkout a1b2c3d4...
可以檢出此列表中的所有內容,以返回到該修訂版本,其中a1b2c3d4...
是您看到的提交的十六進制哈希。在沒有查看日誌的情況下返回到分支中的前一個提交的另一種方法是隻輸入或git checkout HEAD~
。
如果你在分支的日誌中找不到任何東西,你可能還沒有創建回覆提交,並以某種方式以不同的方式重置分支,可能的解決方案是使用git reflog
。這應該顯示提交的十六進制哈希列表,您可以按照前面提到的相同方式簽出。 reflog包含您在本地工作樹中籤出的每個提交的列表,即使它們跨越不同的分支,或者在與git reset
發生錯誤後不再可從任何分支訪問。
如果你發現你想提交包含一切,與git checkout master
注意到它的十六進制散列,然後結賬master
再次,然後運行git reset --hard a1b2c3d4...
,其中a1b2c3d4...
是你想要的提交的哈希值,這將帶來master
回到那個狀態。
如果您無法在提交日誌或引用日誌中找到包含所有文件的提交,那麼您可能無法使用git恢復文件,如果您從未真正進行提交,則會出現這種情況,並且GitKraken完全清理並刪除了工作樹中的分階段更改。在這一點上,你將不得不尋找其他地方恢復選項,如: