git报错:error: RPC failed; curl 18 transfer closed with outstanding read data remaining

具体报错信息:
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: 过早的文件结束符(EOF)
fatal: index-pack 失败

错误原因分析:

  1. 如果 git 项目太大,拉代码的时候可能会出现这个错误。
  2. git 有两种拉代码的方式,一个是 HTTP,另一个是 ssh。git 的 HTTP 底层是通过 curl 的。HTTP 底层基于 TCP,而 TCP 协议的实现是有缓冲区的。所以这个报错大致意思就是说,连接已经关闭,但是此时有未处理完的数据。

解决办法:

  1. 增大缓冲区
    切到 git 项目目录后,执行如下命令
    // 524288000 的单位代表 B,524288000B 也就是 500MB。
    // 这个值的大小,可自行酌情设置。
    git config --global http.postBuffer 524288000
    查看是否设置成功
    git config –list | grep postbuffer

  2. clone git的项目的时候,经常都会遇到项目很大,提交历史很长,导致clone的时候花大半天都clone不下来的问题。而且如果直接git clone,必须一次把所有的历史clone下来,否则失败就直接丢弃所有。如果只是需要最新内容,或者网络不好,总是网络中断的情况,非常不友好。
    实际上,如果只需要看最新的提交,使用depth参数,就可以实现只clone最新的代码:
    git clone --depth 1 $clone_url
    当然,还能使用 --single-branch 参数,指定对应分支。
    这个clone出来的结果,就是一个shadow,只有部分提交的git repo

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值