我参与了一个新的Projekt。我将所有文件添加到我的本地git-repository
git add .
但我没有承诺。然后我意外地重新安置了git
git reset --hard
如何恢复文件?我希望,那个原子保存文件,但也存在,文件不再打开。没关系,那个原子会关闭我的所有文件。
答案 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是第一级目录中两个字符的串联,后跟文件名的所有字符。
因此编写一个可以恢复所有文件的内容的脚本是相当简单的,但是你必须在事后重新命名它们。