这是关于Git仓库损坏的众多问题之一,确切地说,是一个松散对象出了问题:
$ git gc
Counting objects: 3299, done.
error: inflate: data stream error (unknown compression method)
error: unable to unpack 831a5d31af4a0af2f5a367689bee27a44efc22c9 header
Delta compression using up to 6 threads.
Compressing objects: 100% (3283/3283), done.
error: inflate: data stream error (unknown compression method)
fatal: loose object 831a5d31af4a0af2f5a367689bee27a44efc22c9 (stored in .git/objects/83/1a5d31af4a0af2f5a367689bee27a44efc22c9) is corrupt
error: failed to run repack
在处理与 Git 对象文件损坏相关的问题时,可以参考以下现有的答案(如何处理损坏的 Git 对象文件?、如何修复损坏的 Git 存储库? 或 由于缺少对象而导致的 Git 损坏该怎么办?)。我已经从受损的存储库中删除了对象831a5d31
。
在我的情况下,我拥有一个克隆的存储库,似乎保存了我遗失的对象,但是在objects/83/1a5d31af4a0af2f5a367689bee27a44efc22c9
路径下没有文件。我该如何修复我的存储库?
git cat-file tree <hash> > temp
git hash-object -t tree -w temp
- fuzzyTewgit fsck
指定的方式复制缺失的object
文件可以解决问题。 - bbodenmiller