当前位置:   article > 正文

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/707486
推荐阅读
相关标签
  

闽ICP备14008679号