![](/img/trans.png)
[英]files in the git repo are both deleted and untracked but they're still there. How is that possible?
[英]Is it still possible to restore deleted untracked files in git?
假設昨天我在我的 master 分支上做了一些更改,但我忘了添加、提交它們。 早上我做了
git reset --hard
在這種情況下是否可以恢復已刪除的文件?
一些更好的IDE會將您的文件跟蹤為本地歷史記錄。 如果您從外部刪除了文件(例如, git reset
),您應該可以在父目錄中的IDE中單擊並選擇“與本地歷史記錄比較”。
當我的未跟蹤文件被一些實用程序消滅時,我在PHPStorm
IDE中成功使用了此功能...
不...................不是。
git reset --hard
是一個非常危險的命令,所以下次使用時要小心:)
如果您沒有對這些文件進行任何提交,那么您似乎無法恢復它們。
否則,reflog命令可以幫到你。
( 注意 : 由於接受的答案已經公布,所以步驟似乎有所改變。但這個想法仍然是一樣的。 )
為了添加到已接受的答案,我能夠使用Webstorm 2016恢復已刪除的文件。
git reset --hard
不會刪除未跟蹤的文件。 但是, git clean
會。
但是如果你git add
文件,不要git commit
它們然后運行git reset --hard
那些文件將丟失。
但是沒關系,因為它們可以恢復,如本答案所示。 (好吧,直到下一個git gc
)。
您無法從git訪問以前版本的未跟蹤已刪除文件,因為在coruse中它們不存在。 我會從一些備份中恢復它們(也許是ide / editor留下了隱藏的備份文件?),或者,作為替代方案,我會避免過多地使用該文件系統並開始搜索恢復工具。
如果“recuva”等文件檢索工具不起作用,請執行以下操作:
這對我有用。 我能夠檢索內容。
如果您使用的是 Windows,請轉到您保存這些文件的文件夾 > 右鍵單擊 > 屬性 >“以前的修訂版”,然后雙擊最近的修訂版。 它將顯示當時所有這些文件是如何被提及的。 打開你想要的文件,如果它是你想要的,復制內容並粘貼到你當前的文件中。
如其他答案中所述, Local History
方法或在您編寫它的編輯器中簡單地單擊ctrl+z
(撤消)是最佳答案。 但是當我實際上沒有在支持本地歷史記錄的 IDE 中編寫代碼時,這種方法就派上用場了。
對於 VScode,以下步驟對我恢復已刪除的未跟蹤文件有效
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.