git gc 失败指的是未在任何地方引用的对象哈希
git gc failure refers to object hash that's not referenced anywhere
最近,我注意到当我git pull
我的回购时,它每次都在做一个git gc
。所以我尝试手动 运行 git gc
,这给了我这个错误:
fatal: bad object 76cab35e0e21b7cf0bc8416661a67fbfb7f0e4ba
error: failed to run repack
然后我尝试搜索 .git/packed-refs
和 .git/objects/
以及 .git/index
来寻找这个散列(甚至尝试只搜索我整个 .git/
目录的文件名和内容这个散列),但它 从未出现 。它也没有出现在 git fsck --full
中(我猜它可能指的是 .git/
中的一些文件,所以这是有道理的)。
我该如何解决这个问题? (我正在使用 git 2.3.2
。)
发生这种情况是因为 reflog 引用了以某种方式从文件系统中消失的条目。 运行 git gc
和 --prune="0 days"
将删除所有未在远程源中跟踪的比现在更早的引用,并且应该可以解决该问题。
最近,我注意到当我git pull
我的回购时,它每次都在做一个git gc
。所以我尝试手动 运行 git gc
,这给了我这个错误:
fatal: bad object 76cab35e0e21b7cf0bc8416661a67fbfb7f0e4ba
error: failed to run repack
然后我尝试搜索 .git/packed-refs
和 .git/objects/
以及 .git/index
来寻找这个散列(甚至尝试只搜索我整个 .git/
目录的文件名和内容这个散列),但它 从未出现 。它也没有出现在 git fsck --full
中(我猜它可能指的是 .git/
中的一些文件,所以这是有道理的)。
我该如何解决这个问题? (我正在使用 git 2.3.2
。)
发生这种情况是因为 reflog 引用了以某种方式从文件系统中消失的条目。 运行 git gc
和 --prune="0 days"
将删除所有未在远程源中跟踪的比现在更早的引用,并且应该可以解决该问题。