![](/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.