Git克隆失败,损坏的文件

问题描述:

在我们公司,我们正在使用我们自己的GitLab 7.13.4安装。访问被配置为允许https和ssh认证。当使用版本为1.7,1.9或2的git客户端时,克隆现有项目将与两种验证方法一起工作。然而,旧的(SLES 11)使用Git版本1.6.0.2的HTTPS的方法产生以下错误服务器:Git克隆失败,损坏的文件

> git clone https://[email protected]/myrepo/myproject 
Initialized empty Git repository in /users/myrepo/myuser/myproject/.git/ 
error: File 0000000000000000000000000000000000000000 (https://[email protected]/myrepo/myproject/objects/00/00000000000000000000000000000000000000) corrupt 
Getting pack list for https://[email protected]/myrepo/myproject 
Getting alternates list for https://[email protected]/myrepo/myproject 
Also look at https://[email protected]//<! 
Also look at window.gon={};gon.default_issues_tracker="gitlab";gon.api_version="v3";gon.relative_url_root="";gon.default_avatar_url="https://my.host/assets/no_avatar-0b64d25ac5f63e6f0caee99e819105ba.png";gon.max_file_s 
Segmentation fault 

的SSH-方法工作得很好,虽然。问题是我们想要防止将私钥文件复制到服务器上,并且还要更新git客户端安装。你有任何关于如何解决这个错误的建议,或者客户端更新是否有必要?

首先,备份服务器上的所有重要数据(如果尚未存在)。

0000...实际的文件名或占位符?

如果它实际上是0000...真的有一些奇怪的东西被推送到git repo(一个具有无效文件的树的提交;但树实际上并没有损坏,因为sha1的总和匹配?!我不是如果不是0000...,而是一些有效的SHA1总和,请尝试在另一个结帐(从<repo-root>/.git/objects/xx/xxxxxxx)中找到该文件并手动复制它如果对象在一个包中,你可以尝试unpacking

+0

'0000 ...'是错误信息中的实际文件名,但是我找不到对象在我的存储库的任何其他成功检出版本中。它绝对不是任何推送文件的名称。但是,我刚刚注意到,当我尝试克隆不存在的存储库时,会出现相同的错误消息。 –

+0

嗯。看看[this](https://*.com/questions/223678/which-commit-has-this-blob)找到哪个提交包含该blob。如果没有,请删除文件 – nishantjr