我不小心删除了.git/index
,有没有办法恢复它?它已被永久删除。我还没有犯任何罪。
要重建索引文件,可以尝试以下两个命令:
git reset # re-scan the working directory
git add -u # update the index
您可以使用 git reset
恢复上次结帐时的索引。 从那时起您添加的任何内容仍然会添加,它位于存储库中,但索引是唯一记录路径和内容关联的地方。 你可以让 git fsck 将无法访问的对象放入丢失的目录中,查看其文档,然后熟悉领域的最快途径是将内容放回工作树中并再次添加,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
查看索引的人类可读表示形式)。