从git恢复文件

时间:2016-12-15 00:58:30

标签: git file atom-editor restore

我参与了一个新的Projekt。我将所有文件添加到我的本地git-repository

git add .

但我没有承诺。然后我意外地重新安置了git

git reset --hard

如何恢复文件?我希望,那个原子保存文件,但也存在,文件不再打开。没关系,那个原子会关闭我的所有文件。

1 个答案:

答案 0 :(得分:3)

当您git add文件时,git将其作为对象存储在您的存储库中(在.git目录中)。您的文件可能仍然存在。另一方面,通过运行git reset --hard命令,您丢失了有关文件名称的任何信息。

您可以通过运行以下来查看对象本身:

find .git/objects -type f

这会产生类似的东西:

.git/objects/67/6e8ff99e42b61f96bb0107fa1dff59594eba07
.git/objects/7c/45d8f7d987c584a8d61a8d75431ddd4f1ba52f

您可以使用git cat-file命令查看这些对象的内容,如:

git cat-file -p 7c45d8f7d987c584a8d61a8d75431ddd4f1ba52f

请注意,对象id是第一级目录中两个字符的串联,后跟文件名的所有字符。

因此编写一个可以恢复所有文件的内容的脚本是相当简单的,但是你必须在事后重新命名它们。