3 回答

TA貢獻1810條經驗 獲得超4個贊
如果您尚未提交,暫存或隱藏所做的更改,則無法恢復這些更改。
編輯:恢復丟失的更改。在Mark Longair的建議上添加此內容(在評論中)。這還包括他在下面的答案中的幾個SO鏈接(*),我發現這些鏈接非常有用。
如果您曾經提交過一些更改而丟失了該提交(例如以分離狀態提交),則可以使用來找到該提交
reflog
。請參閱此SO問題 *。如果您丟失了上一階段的更改,則也可以恢復。請參閱此SO問題 *。(我自己從未使用過或嘗試過)。
如果你已經藏匿的變化,你也可以使用恢復
pop
或apply
。(我不確定彈出/放下的隱藏存儲是否也可以恢復,但未提交)。您可能會在git中發現此恢復丟棄的存儲很有用。
如果有人可以建議其他任何方法,我將進一步編輯此答案以添加它們。

TA貢獻1795條經驗 獲得超7個贊
兩個長鏡頭:一些IDE(例如Delphi)保留了編輯器歷史記錄。您可能在那里有追索權。
接下來,如果您的本地工作目錄位于MyDocuments文件夾中,則它可能已經由Windows Home Server,Carbonite,MozyPro等自動備份了。這些通常是“設置后忘記了”。也許你忘了嗎?

TA貢獻1789條經驗 獲得超8個贊
此處的關鍵問題是對文件進行更改后的操作。如果創建的提交包含文件的新狀態,則應該能夠通過查看中的最新條目git reflog,找到提交的SHA1sum并使用git branch recovered <SHA1sum>或類似內容從中創建一個新分支來找回它們。在此答案中有一個執行此操作的示例。
如果您git add對任何文件進行了登臺,也應該可以將它們取回,但這是更多工作-Jakub在此答案中描述了如何執行此操作。
如果您碰巧git stash要給自己一個干凈的狀態,那么您當然可以像其他藏家一樣將其取回。
否則,恐怕這個消息不好。
我希望事后指出這一點不會令人氣憤,但只要切換回master分支,您就不需要使用任何可能會丟失數據的命令- git checkout master會告訴您您已經在master分支上,并顯示所有未提交的更改。(git reset --hard考慮到^W我以這種方式丟失數據的人的頻率,如果有未提交的更改,可以說是“是的,我的意思是真的”確認。)
- 3 回答
- 0 關注
- 872 瀏覽
添加回答
舉報