最近,遇到一个非常棘手的问题,那就在执行如下命令的时候,出现的错误提示
git clone <仓库SSH链接>
错误提示如下:
Cloning into 'ios_mifbb_2-5'...
remote: Counting objects: 7643, done.
remote: warning: suboptimal pack - out of memory
error: pack-objects died of signal 955/7454)
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: aborting due to possible repository corruption on the remote side.
fatal: early EOF
fatal: index-pack failed
相信很多人也遇到过这个问题,然后找遍大江南北,跨过山和海洋,Google和百度都没有解决方案。虽然使用--depth=1 浅克隆能够使用,但是我要的是当前分支全部克隆啊!见到最多的解决方案,无非是 "git config --global pack.window 0" 之类的设置,诚然,可能这些方案对有些人适用,但是,我这边依然无动于衷,困扰了两天的问题,很是头疼。同时,本地无法clone的情况,也影响着我使用的jenkins持续化集成的代码clone,不解决这个问题,会让我这个有强迫症的人,无法接受。
转换思路,既然本地无法解决,那么我就得静下心来好好看看错误提示语,毕竟git提示语才是最有价值的解决方案的源泉。
remote: warning: suboptimal pack - out of memory
意思是远端pack包内存越界了。那么这个远端应该是git仓库服务器,git仓库服务器内存不够了,说明至少问题在git仓库服务器,不在本地电脑端折腾了。于是,找到管理git仓库服务器人员,登录进入查看,嗯。。。可用空间已经所剩无几了,交换空间不足,很有可能是影响整个问题的根源。考虑到ios的代码一直以来是各种开发语言最大的,我问过,java一般也就几十兆,前端更小,可能会几兆,安卓也是几十兆,ios代码使用pod库导入的各种SDK,有的大的不得了,我现在已经是700M了,以后可能会达到几个G,其他端估计很难遇到这个问题。随后,服务器管理员重启一下git服务器,然后操作了交换空间设置。好的,问题到这里,在试一下clone,正常拉取。
后话:问题是解决了,网上的文章当然不能解决所有的问题,我的解决方案只能说属于特殊点的,如果你尝试了很多其他办法,仍然无法有效,那么就试试我的方法吧!