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

Sai*_*aev 23 git git-reset

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

git reset --hard
Run Code Online (Sandbox Code Playgroud)

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

Jov*_*vic 54

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

PHPStorm当我的未跟踪文件被一些实用程序消灭时,我在IDE中成功使用了此功能...

  • 对于Eclipse,导航到文件所在的文件夹/包(Project Explorer或Package Explorer视图),右键单击,然后从上下文菜单中选择"从本地历史记录中恢复...". (6认同)
  • omg ...你救了我的命.我在零提交项目中使用`git reset --hard`,这意味着`git fsck --lost-found`无效.幸运的是,我读了你的答案并在WebStorm中使用了"revert history"并成功获得了擦除代码...... (3认同)

小智 31

对于 VScode,以下步骤帮助我恢复已删除的未跟踪文件

  1. CTRL + SHIFT + P
  2. 查找:“本地历史记录:查找要恢复的条目”
  3. 搜索已删除的文件
  4. 选择最后保存的文件打开

  • 我通常不会在第一次约会时说这句话,但我爱你 (10认同)
  • 救星!!祝你度过愉快的一周 (2认同)

Wes*_*row 14

不...................不是.


小智 7

git fsck也许可以帮助你。

如果您还没有进行垃圾收集,它可能会对您有所帮助。一旦你有了 blob id,你就可以说:

git show {blobId}


Arp*_*ini 6

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

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

Setp 2:转到本地历史记录,然后转到显示历史记录

在此处输入图片说明

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

在此处输入图片说明


Tim*_*Tim 5

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

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

否则,reflog命令可以帮到你.


Pod*_*Pod 5

git reset --hard不会删除未跟踪的文件。git clean会,但是。

但是,如果您git add的文件,不要git commit他们,然后运行git reset --hard这些文件丢失。

但是没关系,因为它们可以恢复,如本答案所示。(好吧,直到下一个git gc)。


小智 5

注意步骤似乎有所改变,因为已接受的答案已发布。但想法保持不变。

为了补充已接受的答案,我能够使用 Webstorm 2016 恢复我删除的文件。

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

    • 转到项目的项目选项卡,右键单击以进入“本地历史”下的“显示历史”。(如图所示。

    • 单击“显示历史记录”后,可以看到其中包含“外部更改 -> 还原”的弹出窗口。单击以还原右侧所需的文件。(如附图所示。

    • 完成上述 2 个步骤后,您应该会在“项目”选项卡中看到您的文件。“本地历史”弹出窗口将显示类似于此附加图片的内容。恢复到外部更改您将获得一个将其添加到 Git 的选项。

    • 要取消跟踪,只需git reset HEAD <filename>从命令行执行 a 。