在公司项目维护时,某个git仓库有十多个分支,且提交很多次,我在拉取代码时报错
Cloning into 'gui-cmcc'...
info: detecting host provider for 'http://192.168.1.204:8000/'...
info: detecting host provider for 'http://192.168.1.204:8000/'...
warning: redirecting to http://192.168.1.204:8000/vhd/gui-cmcc.git/
remote: Enumerating objects: 781, done.
remote: Counting objects: 100% (781/781), done.
remote: Compressing objects: 100% (381/381), done.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
error: 5947 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
大致意思就是说文件太多了
然后通过搜索成功解决了(不得不说AI问答比某度靠谱),具体就是以下配置
git config --global http.postBuffer 524288000
Git 默认的 HTTP 缓冲区大小相对较小,上面的命令将缓冲区大小设置为 500MB。注意该配置只对http方式的git仓库有效,如果是ssh该配置无效
git config --global http.compact False
在一些情况下,禁用 HTTP 压缩可以解决问题。
git config --global --add remote.origin.fetch '+refs/heads/:refs/remotes/origin/'
git config --global core.compression 0
这两个配置是做什么的,具体还不清楚,反正我也配置了
然后我再进行
git clone http://192.168.1.204:8000/vhd/gui-cmcc -b cmcc_vc_temp
时,竟然真的成功了
这里做一下记录,方便以后遇到相同问题快速解决