报错如下:
C:\Users\meiktv\StudioProjects\meiktv_android_vod_3>git clone https://gitlab.meiktv.com/client/meiktv_android_vod.git Cloning into 'meiktv_android_vod'... remote: Enumerating objects: 46631, done. remote: Counting objects: 100% (2627/2627), done. remote: Compressing objects: 100% (199/199), done. error: 24576 bytes of body are still expectediB | 2.91 MiB/s fetch-pack: unexpected disconnect while reading sideband packet fatal: early EOF fatal: fetch-pack: invalid index-pack output
首先说解决方法:
这个问题的症状是 error: 24576 bytes of body are still expectediB + git clone下载到大于1G就报错
如果你也是这样,那恭喜你下面这个方法对症了
1.首先检查 gitlab 的nginx 反向代理配置
看看gitlab 反向代理的nginx 配置 proxy_max_temp_file_size 是否存在, 默认值是 1G。没有就对了,新增并给 0 (无限)
2.设置下载缓存参数
这个可以根据实际情况设置,我这里设置的是2G
git config --global http.postBuffer 2G
确认参数是否正确设置
git config http.postBuffer
3.开始克隆仓库代码
git clone https:****
--------------------------------------问题处理过程,及反思分割线,赶时间的客观可以略过-----------------------------------------------------------------------------------------------------
一开始我搜了fatal: early EOF 这个报错,然后在网上搜到了一套标准答案
首先,关闭压缩:
git config --global core.compression 0
接下来,让我们进行部分克隆以截断下降的信息量:
git clone --depth 1 <repo_URI>
在这种情况下,进入新目录并检索克隆的其余部分:
git fetch --unshallow
或者,
git fetch --depth=2147483647
现在,进行常规拉动:
git pull --all
按流程操作后我傻眼了
前面第一第二步都顺利,到第三步git fetch --unshallow 还是报同样的错,这tm不就是死循环么
后面继续寻找,试了很多种方法也没用,后来发现虽然最终都报fatal: early EOF ,但是前面的error却不都是一样的
然后我重点搜error: 24576 bytes of body are still expectediB的报错,同时我也发现了一个症状,就是每次下载到1G时,就报错
最终问题变为了error: 24576 bytes of body are still expectediB + git clone下载到大于1G就报错,
针对这两个症状搜索,解决方法就对症很多
所以,处理问题如看病,对症治疗才有效,找准症状就是这其中的技术活了,要多观察规律,找准根本症状才行
注:如果没有修改gitlab反向代理的权限,但是又想下载呢,那只有参考这篇,分批下载了,把下载每批次控制在1G以内。。
其实也可以找服务方修改配置
https://www.jianshu.com/p/476b0c137520
参考文档:
https://www.zhihu.com/question/459368786/answer/2338345776
https://blog.csdn.net/qq_38111015/article/details/124107839
https://www.nuomiphp.com/eplan/286859
https://blog.csdn.net/qq_40713668/article/details/105437484