回答
一些更好的IDE會將您的文件作爲本地歷史記錄進行跟蹤。如果您從外部刪除文件(例如,git reset
),您應該能夠在父目錄的IDE上單擊並選擇「與本地歷史記錄進行比較」。
我PHPStorm
IDE成功使用此功能時,我未跟蹤文件已經被一些實用消滅了......
對於Eclipse,導航到文件所在的文件夾/包(Project Explorer或Package Explorer視圖),右鍵單擊,然後從上下文菜單中選擇「從本地歷史記錄中恢復...」。 – 2014-12-30 22:47:00
omg ...你救了我的命。我在一個零提交項目中使用'git reset --hard',這意味着'git fsck --lost-found'不起作用。幸運的是,我閱讀你的答案,並在WebStorm中使用'恢復歷史記錄',併成功得到了擦除代碼... – 2016-05-30 12:20:04
總是很高興聽到我的回答貢獻了一個「快樂結局」:) – 2016-05-31 05:58:49
否...................事實並非如此。
git reset --hard
是一個非常危險的命令,所以要小心,當你使用它下一次:)
如果你沒有犯任何這些文件,好像你就沒有機會恢復。
否則,reflog命令可以幫助你。
,你不能訪問到以前的版本從混帳未跟蹤刪除的文件,因爲coruse,他們不存在。我會從一些備份中恢復它們(也許還有隱藏在IDE /編輯器中的備份文件?),或者,我會避免在該文件系統上工作太多,並開始搜索恢復工具。
編輯好!我從文件中意外丟棄了未跟蹤的更改(詛咒Github應用程序),但意識到我仍然在Atom中打開了該文件,並且可以直接點擊「撤消」來恢復我的更改。 – henrebotha 2016-04-29 09:03:16
@henrebotha,嗨!這只是發生在我身上,但不幸的是我沒有在git硬重置時打開我的原子,你知道我可以保存的任何可能的方式。非常愚蠢的是,我在未跟蹤的文件中有大量的東西。 – 2017-06-15 18:27:10
@ gdad-s-river您應該仍然可以在事後打開Atom並且點擊'撤消',只要您在Atom中編輯了文件。 – henrebotha 2017-06-19 06:50:50
git reset --hard
不會刪除未跟蹤的文件。然而,git clean
將會。
不過,如果你git add
的文件,不要git commit
它們,然後運行git reset --hard
這些文件將丟失。
但沒關係,因爲它們可以恢復,如this answer所示。 (那麼,直到下一個git gc
)。
(注意:。的步驟似乎已經改變了一下,因爲公認的答案被張貼但這個想法是一樣的)
要添加到接受的答案,我能使用Webstorm 2016恢復我刪除的文件。
- 首先,我丟失了我的文件,使用git
git clean -f
進行強制清理。 要恢復它,我在Webstorm去了,做了以下步驟:
轉到項目爲您的項目選項卡上,單擊鼠標右鍵獲得到「查看歷史」下「地方史」。 (As shown in this picture.)
單擊「顯示歷史記錄」後,可以看到彈出窗口中顯示「外部更改 - >恢復」。單擊以恢復右側所需的文件。(As shown in the attached picture.)
經過以上2個步驟後,您應該會看到您的文件回到'項目'選項卡。彈出的「本地歷史」將顯示如附圖所示的內容。 Reverted to External Change你會得到一個選項讓它添加到Git中。
要解開它,只需從命令行執行
git reset HEAD <filename>
即可。
- 1. Git從跟蹤中刪除已刪除的文件
- 2. 我可以恢復從未提交的已刪除文件嗎?
- 3. 混帳 - 恢復已刪除的文件未追蹤
- 4. 什麼是GIT中的跟蹤文件和未跟蹤文件?
- 5. 如何在Git中刪除未跟蹤的文件?
- 6. 在git中恢復已刪除的歷史記錄文件
- 7. Git是如何刪除未跟蹤文件
- 8. 恢復已刪除的git存儲庫
- 9. 從狀態中刪除git未跟蹤的文件,而不刪除從HD
- 10. 是否有可能在Github上恢復已刪除的要點?
- 11. Git克隆導致刪除和未跟蹤的文件
- 12. Git添加修改,刪除和未跟蹤的所有文件?
- 13. 恢復已刪除的Cassandra DB文件
- 14. 如何恢復已刪除的文件
- 15. SVN恢復已刪除的文件
- 16. 從SourceTree或Git恢復已刪除的文件
- 17. 提交後使用Git恢復已刪除的文件夾
- 18. 在Google跟蹤代碼管理器中恢復已刪除的帳戶
- 19. 他們是否可以恢復`git checkout`?
- 20. 無法從Git Bitbucket刪除跟蹤文件回覆
- 21. 是否可以恢復由git checkout覆蓋的文件?
- 22. Git Shell:我們如何從未跟蹤的文件中刪除特定文件
- 23. 我可以恢復在Eclipse中刪除的文件嗎?
- 24. 在指定的路徑從git的跟蹤刪除文件
- 25. .gitignore即使在刪除緩存後仍會跟蹤文件
- 26. git add後未跟蹤的文件
- 27. 將跟蹤的文件移動到未跟蹤的git
- 28. 恢復先前的狀態,保持未跟蹤的文件
- 29. 替代刪除觸發器以跟蹤已刪除的記錄
- 30. 是否可以從git存儲中刪除單個文件?
如果發生了什麼'git的add'這些文件在某些時候,即使你從來沒有承諾他們,他們仍然會被周圍,直到他們收集的垃圾(約兩週)垂下斑點。 'git fsck'會將對象列爲[dangling or unreachable](https://stackoverflow.com/a/36671659/712526)。然後你可以使用'git cat-file -p deadbeef> old-file-name'來恢復它們。 – jpaugh 2017-08-23 19:36:15
([Pod的答案](https://stackoverflow.com/a/45815093/712526)已經涵蓋了這個,哎呀!) – jpaugh 2017-08-23 19:48:18
可能重複:https://stackoverflow.com/q/25791533/712526 – jpaugh 2017-08-23 19:49:29