使用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上删除掉,这个问题就解决了。