有什么想法如何恢复我在下面的第2步中所做的更改?
答案 0 :(得分:3)
如果您在更改后在该文件上运行git add
,则该内容已注册在.git
中-该文件存在于此并且可以检索。尽管不容易-您必须先查找Git创建的所有最新对象:
find .git/objects/ -type f -printf "%T+\t%p\n" | sort
这些按修改日期排序,因此最后一个是最近创建的。继续前进-遍历每个对象并运行以下命令,直到找到您的内容为止:
git cat-file -p [40 letter hash including 2-letter directory name]
其中一些对象不是文件,而是树(目录)和提交,请跳过它们。
如果您没有运行 git add
,则Git根本不了解该文件,因此您无法要求Git取回文件。