2017-03-15 63 views
-1

所以,我有一點經驗與git。所以我一直在使用GitKraken來利用git的功能。我相信我在某個地方搞砸了,失去了幾個星期的工作。我發佈了一些文件並進行了一次提交,但僅僅意識到,我不想在一次提交中將所有文件分級。所以我所做的就是右鍵單擊提交,它可以恢復更改,也可以刪除提交或其他類型的提交。所以我這樣做,認定我只是修改了git回購。然後我檢查出我的主分支沒有當前文件。現在我不確定哪些操作會刪除我的文件,但現在它們已經丟失。我以爲檢查一個分支不會與未跟蹤的文件混亂,所以我認爲這是一個安全的操作...GitKraken文件丟失!需要幫助恢復

幫助! ; _;我甚至可以從哪裏開始弄清楚如何恢復這些丟失的文件?

回答

2

如果提交了更改,但是您恢復了該提交,那麼將創建一個恢復提交,其中包含刪除所有文件的更改。如果是這種情況,可以先嚐試輸入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完全清理並刪除了工作樹中的分階段更改。在這一點上,你將不得不尋找其他地方恢復選項,如:

  • 備份
  • 你的文本編輯器/ IDE的swapfilesfile history
  • 文件恢復軟件對你的文件系統中運行,就好像你有剛剛刪除了一些文件,通常不使用git,也沒有任何備份