回答
一些更好的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