不小心删.git/index
了,有什么办法可以恢复吗?它被永久删除。我还没有做出任何承诺。
3 回答
要重建索引文件,您可以尝试以下两个命令:
git reset # re-scan the working directory
git add -u # update the index
您可以使用 恢复上次结帐时的索引git reset
。从那时起您添加的任何内容仍然会添加,它在存储库中,但索引是唯一记录路径和内容关联的地方。您可以让 git fsck 将无法访问的对象放入 lost'n'found 目录,查看其文档,然后熟悉领域的最快路线是将内容放回工作树并再次添加,git不会复制内容但它将恢复索引条目。
我认为这是不可能的,git
无论如何都不可能(您可以尝试查看垃圾箱目录或文件系统提供的任何恢复方式)。但是,只要您git add
做某事或做其他需要索引的事情,您就会得到一个新的索引。
如果您丢失了您git add
编辑的任何文件,您可以通过 ./git/objects ( find .git/objects/ -type f |sed 's:\.git/objects/::; s:/::'
) 检查每个文件的内容git cat-file -p $the_hash
,一旦找到丢失的文件,将输出重定向到文件.
(当您 时git add
,文件名条目会转到.git/index
并将文件内容存储在中.git/objects/
。Git 索引由在您时创建的可能的树对象的文件名条目组成commit
。您可以查看索引的人类可读表示与git ls-files --stage
)。