Git - 查找文件及其偏移量

Git - Finding a file with its offset

我正在尝试克隆远程 Git 存储库。

我以前做过没有任何问题,但是在这个项目上,我得到了错误

fatal: pack has bad object at offset 289293315: inflate returned -5

fatal: index-pack failed

如何找到导致错误的文件?我试过了 git show :289293315

但它显然不是索引:

fatal: Path '289293315' does not exist (neither on disk nor in the index).

这是 打包文件 中的一个错误。一个包文件包含许多单独的 Git 对象,它们全部混合在一起 delta-compressed.

要找到坏包文件,请查看 .git/objects/pack 目录,其中将包含一个或多个 .pack 文件和相应的 .idx 文件。例如,您可以在每个 .pack 文件上 运行 git index-pack -v 来查找问题。这就是现在正在发生的事情(没有 -v)。

您还可以在将损坏的 .pack 文件移出存储库本身后使用 git unpack-objects -r 来尝试恢复任何剩余的好对象。但是,您最好的选择可能是找到存储库的一个好的克隆。同时你应该弄清楚为什么你现有的包文件变坏了:是不是有什么东西损坏了文件?您的存储设备出现故障了吗?