Git拉取,致命错误:松散的对象。

5

我的同事尝试从我们的主分支进行 git pull,但是出现了以下错误:

$ git pull
fatal: loose object f7630cc30248df1e19bcb40c9de1b60b71cdfce1 (stored in ./objects/f7/630cc30248df1e19bcb40c9de1b60b71cdfce1) is corrupt
fatal: The remote end hung up unexpectedly

幸运的是,我的代码库似乎没有损坏,并且我有一个副本 f7630cc30248df1e19bcb40c9de1b60b71cdfce1。但我不知道他需要用它做什么。我们尝试将我的副本放入他的 .git/objects/f7/ 目录中,但错误消息仍然相同。这只需要简单地移动文件吗?还是我们需要做其他的事情呢?

这个问题在https://dev59.com/cGgt5IYBdhLWcg3w7ByL#31110176有更好的答案,也许应该标记为重复。 - abaumg
2个回答

4

那个文件是否存在于主分支上?如果是,它是有效的还是损坏的?是的,只需将一个好的文件版本复制到对象目录中即可。


它在主机上,但我不确定如何判断它是否松动,我该怎么做? - Ken Williams
如果文件存在于.git/objects/f7/目录下,那么它就是“loose”(松散的)的,也就是说它没有被“packed”(压缩)到.git/objects/pack目录中。 - araqnid
哦!好的 - 明天他回来后,我们将尝试直接复制它。我猜测一些Cygwin->Windows->服务器->同事->复制->粘贴步骤损坏了我文件的副本。 - Ken Williams
1
事实证明,问题不在于文件内容损坏,而是仓库文件权限过于严格。我们只是使用文件服务器作为我们的代码仓库,这很糟糕。我们需要切换到一个更好的服务器。 - Ken Williams

1
请检查.git/objects目录下的文件是否无法被您读取。我曾经也遇到过这个问题,原因是我的同事在中央服务器宕机期间克隆了我的仓库,并且(我想)推送操作导致了一些由他拥有但我无法读取的文件。

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