比方说,昨天我对master分支做了一些更改,但我忘了添加,提交它们。早上我做了
git reset --hard
在这种情况下可以恢复已删除的文件吗?
r7xajy2e1#
一些更好的IDE会将您的文件记录为本地历史记录。如果您从外部删除了文件(例如git reset),您应该能够在IDE中单击父目录并选择“与本地历史记录比较”。我在PHPStorm IDE中成功地使用了此功能,因为我的未跟踪文件被一些实用程序清除了。。。
git reset
PHPStorm
xe55xuns2#
在Intellij中,如何恢复未跟踪的还原更改**步骤1:**选择文件夹,右键单击它**设置2:**转到本地历史记录,然后转到显示历史记录
小时
**步骤3:**选择意外恢复的未跟踪文件。然后在右侧面板中选择这些文件并恢复更改,您将获得恢复格式的文件。
7ivaypg93#
git reset --hard是一个非常危险的命令,因此下次使用时要小心:)如果您没有对这些文件进行任何提交,那么您似乎没有机会恢复它们。否则,reflog命令可以帮助您。
olhwl3o24#
git reset --hard不会删除未跟踪的文件。然而,git clean会。但是,如果您git add这些文件,不要git commit它们,然后运行git reset --hard,这些文件**将丢失。但没关系,因为它们可以被回收,如this answer所示。(嗯,直到下一个git gc)。
git clean
git add
git commit
git gc
qlfbtfca5#
git fsck可能会帮助您。如果您还没有完成垃圾收集,它可能会对您有所帮助。一旦你有了blob id,你可以说:git show {blobId}
git fsck
git show {blobId}
41zrol4v6#
(注:自从接受的答案发布后,步骤似乎有了一些变化。但想法仍然不变。)除此之外,我还可以使用Webstorm 2016恢复我删除的文件。1.首先,我在使用git git clean -f进行强制清理时丢失了文件。1.为了恢复它,我进入了Webstorm并执行了以下步骤:
git clean -f
恢复到外部更改您将获得一个将其添加到Git的选项。
git reset HEAD <filename>
nnvyjq4y7#
您无法从git访问以前版本的未经跟踪的已删除文件,因为由于coruse,它们不存在。我会从一些备份中恢复它们(也许ide/editor留下了隐藏的备份文件?),或者,作为替代,我会避免在该文件系统上工作太多,并开始搜索恢复工具。
gdx19jrr8#
1.如果文件检索工具(如“receva”)不起作用,请执行以下操作。1.如果您至少构建了一次解决方案,那么将有Dll(中间语言文件:在.Net中称为dll)存储在调试/发布或其他文件夹中。1.然后尝试反汇编DLL(中间语言文件:在.Net中称为dll)。使用DotPeek等工具。这对我很有效。我能够检索到内容。
8条答案
按热度按时间r7xajy2e1#
一些更好的IDE会将您的文件记录为本地历史记录。如果您从外部删除了文件(例如
git reset
),您应该能够在IDE中单击父目录并选择“与本地历史记录比较”。我在
PHPStorm
IDE中成功地使用了此功能,因为我的未跟踪文件被一些实用程序清除了。。。xe55xuns2#
在Intellij中,如何恢复未跟踪的还原更改
**步骤1:**选择文件夹,右键单击它
**设置2:**转到本地历史记录,然后转到显示历史记录
小时
**步骤3:**选择意外恢复的未跟踪文件。然后在右侧面板中选择这些文件并恢复更改,您将获得恢复格式的文件。
小时
7ivaypg93#
git reset --hard
是一个非常危险的命令,因此下次使用时要小心:)如果您没有对这些文件进行任何提交,那么您似乎没有机会恢复它们。
否则,reflog命令可以帮助您。
olhwl3o24#
git reset --hard
不会删除未跟踪的文件。然而,git clean
会。但是,如果您
git add
这些文件,不要git commit
它们,然后运行git reset --hard
,这些文件**将丢失。但没关系,因为它们可以被回收,如this answer所示。(嗯,直到下一个
git gc
)。qlfbtfca5#
git fsck
可能会帮助您。如果您还没有完成垃圾收集,它可能会对您有所帮助。一旦你有了blob id,你可以说:
git show {blobId}
41zrol4v6#
(注:自从接受的答案发布后,步骤似乎有了一些变化。但想法仍然不变。)
除此之外,我还可以使用Webstorm 2016恢复我删除的文件。
1.首先,我在使用git
git clean -f
进行强制清理时丢失了文件。1.为了恢复它,我进入了Webstorm并执行了以下步骤:
小时
小时
恢复到外部更改
您将获得一个将其添加到Git的选项。
git reset HEAD <filename>
。nnvyjq4y7#
您无法从git访问以前版本的未经跟踪的已删除文件,因为由于coruse,它们不存在。我会从一些备份中恢复它们(也许ide/editor留下了隐藏的备份文件?),或者,作为替代,我会避免在该文件系统上工作太多,并开始搜索恢复工具。
gdx19jrr8#
1.如果文件检索工具(如“receva”)不起作用,请执行以下操作。
1.如果您至少构建了一次解决方案,那么将有Dll(中间语言文件:在.Net中称为dll)存储在调试/发布或其他文件夹中。
1.然后尝试反汇编DLL(中间语言文件:在.Net中称为dll)。使用DotPeek等工具。
这对我很有效。我能够检索到内容。