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

ev7lccsx  于 2022-10-23  发布在  Git
关注(0)|答案(8)|浏览(262)

比方说,昨天我对master分支做了一些更改,但我忘了添加,提交它们。早上我做了

git reset --hard

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

r7xajy2e

r7xajy2e1#

一些更好的IDE会将您的文件记录为本地历史记录。如果您从外部删除了文件(例如git reset),您应该能够在IDE中单击父目录并选择“与本地历史记录比较”。
我在PHPStorm IDE中成功地使用了此功能,因为我的未跟踪文件被一些实用程序清除了。。。

xe55xuns

xe55xuns2#

在Intellij中,如何恢复未跟踪的还原更改
**步骤1:**选择文件夹,右键单击它
**设置2:**转到本地历史记录,然后转到显示历史记录


小时

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


小时

7ivaypg9

7ivaypg93#

git reset --hard是一个非常危险的命令,因此下次使用时要小心:)
如果您没有对这些文件进行任何提交,那么您似乎没有机会恢复它们。
否则,reflog命令可以帮助您。

olhwl3o2

olhwl3o24#

git reset --hard不会删除未跟踪的文件。然而,git clean会。
但是,如果您git add这些文件,不要git commit它们,然后运行git reset --hard,这些文件**将丢失。
但没关系,因为它们可以被回收,如this answer所示。(嗯,直到下一个git gc)。

qlfbtfca

qlfbtfca5#

git fsck可能会帮助您。
如果您还没有完成垃圾收集,它可能会对您有所帮助。一旦你有了blob id,你可以说:
git show {blobId}

41zrol4v

41zrol4v6#

自从接受的答案发布后,步骤似乎有了一些变化。但想法仍然不变。
除此之外,我还可以使用Webstorm 2016恢复我删除的文件。
1.首先,我在使用git git clean -f进行强制清理时丢失了文件。
1.为了恢复它,我进入了Webstorm并执行了以下步骤:

  • 转到项目的“项目”选项卡,右键单击“本地历史记录”下的“显示历史记录”。


小时

  • 单击“Show History”(显示历史)后,可以看到弹出窗口,其中包含“External Change->Revert”(外部更改->恢复)。单击以恢复右侧所需的文件。


小时

  • 完成以上两个步骤后,您应该会在“项目”选项卡中看到您的文件返回。“本地历史”弹出窗口将显示如下图所示的内容。

恢复到外部更改
您将获得一个将其添加到Git的选项。

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

nnvyjq4y7#

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

gdx19jrr

gdx19jrr8#

1.如果文件检索工具(如“receva”)不起作用,请执行以下操作。
1.如果您至少构建了一次解决方案,那么将有Dll(中间语言文件:在.Net中称为dll)存储在调试/发布或其他文件夹中。
1.然后尝试反汇编DLL(中间语言文件:在.Net中称为dll)。使用DotPeek等工具。
这对我很有效。我能够检索到内容。

相关问题