是否仍然可以在git中恢复已删除的未跟踪文件?

时间:2012-03-17 12:40:16

标签: git git-reset

让我们说昨天我在我的主分支上做了一些更改,我忘了添加,提交它们。在早上我做了

git reset --hard

是否可以在这种情况下恢复已删除的文件?

8 个答案:

答案 0 :(得分:49)

一些更好的IDE会将您的文件跟踪为本地历史记录。如果您在外部删除文件(例如,git reset),您应该可以在父目录中的IDE中单击并选择“与本地历史记录比较”。

我在PHPStorm IDE中成功使用此功能时,我的未跟踪文件被某些实用程序清除了......

答案 1 :(得分:13)

不...................不是。

答案 2 :(得分:5)

git reset --hard是一个非常危险的命令,所以下次使用时要小心:)

如果您没有对这些文件进行任何提交,那么您似乎无法恢复它们。

否则,reflog命令可以帮助您。

答案 3 :(得分:4)

注意这些步骤似乎有所改变,因为已接受的答案已发布。但这个想法仍然相同。

要添加到已接受的答案,我可以使用Webstorm 2016恢复已删除的文件。

  1. 首先,我使用git git clean -f丢失了我的文件强制清理。
  2. 为了恢复它,我进入了Webstorm并执行了以下步骤:

    • 转到项目的“项目”标签,右键单击“本地历史记录”下的“显示历史记录”。 (As shown in this picture.

    • 点击“显示历史记录”后,可以看到弹出的“外部更改 - >还原'。单击以还原右侧所需的文件。 (As shown in the attached picture.

    • 完成上述两个步骤后,您应该会在“项目”标签中看到您的文件。弹出的“本地历史记录”将显示此附图中的内容。 Reverted to External Change您将获得将其添加到Git的选项。

    • 要解开它,只需从命令行执行git reset HEAD <filename>

答案 4 :(得分:2)

SizeToContent="WidthAndHeight"无法删除未跟踪的文件。但是,git reset --hard会。

但是,如果您git clean这些文件,请不要git add这些文件,然后运行git commit这些文件丢失。

但是没关系,因为它们可以恢复,如this answer所示。 (好吧,直到下一个git reset --hard)。

答案 5 :(得分:1)

您无法从git访问以前版本的未跟踪删除文件,因为在coruse中,它们不存在。我会从一些备份中恢复它们(也许是ide / editor留下了隐藏的备份文件?),或者,作为替代方案,我会避免过多地使用该文件系统并开始搜索恢复工具。

答案 6 :(得分:1)

在Intellij中如何恢复未跟踪的还原更改

步骤1:选择文件夹,右键单击它

设置2:转到“本地历史记录”,然后转到“显示历史记录”

enter image description here

步骤3:选择您意外还原的未跟踪文件。然后在右侧面板中选择这些文件并还原更改,您将获得还原格式的文件。

enter image description here

答案 7 :(得分:0)

git fsck可能会为您提供帮助。

如果您尚未完成垃圾收集,它可能会为您提供帮助。 拥有Blob ID后,您可以说:

git show {blobId}