git出现“failed to read object”和“unable to find”的错误

3
由于某些原因,我突然在几个月前发生的合并提交中遇到了错误? 使用Gitolite将其推送到中央服务器,并在本地使用Git flow扩展。 出现以下错误:

git push:

fatal: failed to read object 02a261fad3eae408b04d1941334875d73ddd3f57: Permission denied
error: unpack failed: unpack-objects abnormal exit

我无法在本地或服务器上找到该对象。

git pull:

error: unable to find 379d1971a1037a97919ce37342ee7a60fc611946
error: unable to find 6e41daf37591c88c8dc18f2ecc8761e7d44a0cd9
error: unable to find 0995f5098e0a96f642c6730231d997dd6e074697

好的,尝试进行全新的Git克隆:

error: unable to find 379d1971a1037a97919ce37342ee7a60fc611946
error: unable to find 6e41daf37591c88c8dc18f2ecc8761e7d44a0cd9
error: unable to find 0995f5098e0a96f642c6730231d997dd6e074697
error: git upload-pack: git-pack-objects died with error.
fatal: git upload-pack: aborting due to possible repository corruption on the remote side.
remote: fatal: failed to read object 6e41daf37591c88c8dc18f2ecc8761e7d44a0cd9: Permission denied
remote: aborting due to possible repository corruption on the remote side.
fatal: early EOF
fatal: index-pack failed

有没有任何想法是什么原因导致这些错误出现?或者更重要的是如何撤消它们?

编辑:在提交了6e41daf37之后,我执行了“git flow feature start blah”,并将现有更改提交到了该功能分支,而不是破坏develop分支。也许是功能分支在本地上存在而不在Gitolite服务器上?无论如何,我无法执行“feature publish”,因为它会出现上面发布的“unpack failed to read object 02a261fad3”错误。


这个项目大概不是一个开源项目,你无法提供URL吗? - johnsyweb
这个 https://dev59.com/HWHVa4cB1Zd3GeqPigS-#9673632 有帮助吗?还是这个 https://dev59.com/PnRA5IYBdhLWcg3w2x2W#820167? - VonC
Johnsyweb: 对的,这不是操作系统问题。 VonC: 看起来他们并没有提供帮助,'git fsck' 命令没有返回任何东西,只有一些悬而未决的 blob,我创建的分支只存在于本地而非远程,所以这并不能解决 'git clone' 失败的问题。 - xref
2个回答

5

我也遇到了同样的问题。似乎服务器上的一些文件权限出了问题。下面两个命令就可以解决:

cd /path/to/gitolite
chown -R git *

1
刚刚意识到这是因为我通过root在服务器上本地克隆/拉取了一个存储库。这会创建/更改存储库中的文件,并且这些文件的所有者变成了root,而不是git。 - Dima

1

由于孩子们说这看起来很“酷”,我相信孩子们仍然这么说,我刚刚从备份中恢复了Gitolite repo,现在一切都运行良好。不知道发生了什么,但这是为什么我们要备份的绝佳例子!


1
太好了。+1。这就是为什么我引用了https://dev59.com/PnRA5IYBdhLWcg3w2x2W#820167(这展示了备份的另一个用途)。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接