无需提交即可在git repo中恢复文件

时间:2014-03-08 16:37:29

标签: git github

我在Github上创建了一个Git repo和一个遥控器。在项目文件夹中,我创建了git init并且忘记了首先git commit。我从远程存储库中取出git pull后,本地文件夹中的所有文件都消失了。我试过了

git reset --hard origin/master
git reset --hard
git checkout <filename>
git checkout -f master

但它对我没有帮助。无处不在写需要恢复最后一次提交,但我没有他的。

我如何恢复所有文件?

1 个答案:

答案 0 :(得分:1)

你是否在git pull之前提交并不是很清楚。还不清楚文件是如何被清除的,因为Git会先问你,除非你使用了一个强制标志。

无论如何,如果您在某个时候提交了文件,那么它们可能不会丢失。你确定你没有在任何分支上吗?先检查一下:

git log --graph --decorate --all --oneline

如果您没有看到提交,那么您可以尝试使用以下命令恢复已删除的文件:

git fsck --lost-found

输出可能如下所示:

Checking object directories: 100% (256/256), done.
Checking objects: 100% (3/3), done.
dangling blob 058a46ad6fec7b6ee95710eb06daa0b8169a5da0
dangling blob f1d509348c7689f0f127d9eba5324db8221d5603

注意悬挂的斑点。它们是已删除的文件。您可以使用git show SHA1查看其内容,也可以在.git/lost-found/other/中找到这些文件。

另一方面,如果您从未提交或暂存原始文件,那么它们就完全消失了。如果你从来没有告诉他们Git,那么它不知道它们,因此无法使用Git恢复。