Clone failed RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.

错误信息一:

Clone failed
RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
The remote end hung up unexpectedly
early EOF
index-pack failed

解决方法:
打开终端

git config --global http.postBuffer 524288000

 

--------------------------如果可以正常下载的话,可以不看以下内容--------------------------------

修改配置文件

gedit ~/.bashrc

然后在配置文件的最下面加上这三行

export GIT_TRACE_PACKET=1

export GIT_TRACE=1

export GIT_CURL_VERBOSE=1

然后保存退出后运行:

source ~/.bashrc  

使配置文件生效

依旧不行,可尝试:
需要如下方式命令,只clone深度为一

       $ git clone https://github.com/JGPY/large-repository.git --depth 1
       $ cd large-repository
       $ git fetch --unshallow

depth用于指定克隆深度,为1即表示只克隆最近一次commit.(git shallow clone)

git clone 默认会下载项目的完整历史版本,如果你只关心最新版的代码,而不关心之前的历史信息,可以使用 git 的浅复制功能:

$ git clone --depth=1 https://github.com/JGPY/large-repository.git

--depth=1 表示只下载最近一次的版本,使用浅复制可以大大减少下载的数据量,例如, CodeIgniter 项目完整下载有近 100MiB ,而使用浅复制只有 5MiB 多,这样即使在恶劣的网络环境下,也可以快速的获得代码。如果之后又想获取完整历史信息,可以使用下面的命令:

$ git fetch --unshallow

或者,如果你只是想下载最新的代码看看,你也可以直接从 GitHub 上下载打包好的 ZIP 文件,这比浅复制更快,因为它只包含了最新的代码文件,而且是经过 ZIP 压缩的。但是很显然,浅复制要更灵活一点。

错误信息二:

    error: RPC failed; curl 18 transfer closed with outstanding read data remaining
    fatal: The remote end hung up unexpectedly
    fatal: early EOF
    fatal: index-pack failed

这个错误是因为项目太久,tag资源文件太大

解决方法一:

网上大部分解决措施:命令终端输入 

git config --global http.postBuffer 524288000

        用上面的命令有的人可以解决,我的还不行,需要如下方式命令,只clone深度为1

git clone /github_com/large-repository --depth 1
cd large-repository
git fetch --unshallow

        中划线处填入你的git仓库的地址。。。(我用的是http方式,不是ssh)

解决方法二:

一般clone http方式的容易产生此问题,改成SSH的方式也有效,即https://改为git://

相关拓展博客地址:

http://www.jianshu.com/p/0e3421961db4

http://blog.csdn.net/h5q8n2e7/article/details/46919579

原文链接:

Clone failed RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.

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

原文地址:https://www.cnblogs.com/jsdy/p/12191828.html