fatal: did not receive expected object

使用git clone命令复制项目,报错,如下图

要了解这个报错先得了解git clone的过程。git clone命令手下会下载整个仓库到本地,目录是./git/objects/pack,里面有个.pack文件(也可能有多个)。这个报错猜测应该是由于下载了这个文件后,检测到此文件有问题,然后导致clone失败。

这么猜测的原因是,通过如下操作,可以把.pack下载下来

1.mkdir testProj

2.cd test Proj

3.git init

4.git remote add origin myUrl

5.git pull

这样,可以把.pack下载下来

然后通过命令

git fsck --full

来验证.pack的有效性,当.pack正常时,如下图:

当.pack有问题时,如下图:

很明显,.pack中有object的异常,SHA1校验没通过

引起这个问题的原因目前还不清楚,一开始怀疑时硬盘问题,可是换了几个盘clone都没有成功

但是,换了电脑clone是正常的。

后来从同事那里拷贝了一份代码,通过git status .命令输出如下:

这时候问题就很明显了,是有三个文件,由于文件名有特殊符号(²),而我的系统没有识别这个特殊符号,从而产生一个错误的文件名。在看看之前的报错,也是三个报错,更加确信是这三个文件引起的问题,把这三个文件从git上删除掉,这个问题就解决了。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页