RPC失败;卷度传输已关闭,剩余未完成的读取数据

当我试图从GitLab (GitLab 6.6.2 4ef8369)克隆一个存储库时,我遇到了这个错误:

remote: Counting objects: 66352, done.
remote: Compressing objects: 100% (10417/10417), done.
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

然后中止克隆。我该如何避免这种情况?

332578 次浏览

几天后,今天我才解决了这个问题。按照本文生成ssh密钥:

https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/ < a href = " https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/ " > < / >

申报给

  1. Git提供者(我正在使用的GitLab, GitHub)。
  2. 将此添加到本地标识。

然后通过命令克隆:

git clone username@mydomain.com:my_group/my_repository.git

没有错误发生。

上述问题

error: RPC failed;Curl 18传输关闭,读取数据出色 剩余的< / p >

因为通过HTTP协议克隆时出现错误(curl命令)。

并且,你应该增加缓冲区大小:

git config --global http.postBuffer 524288000
对我来说,这个问题发生是因为代理配置。我在代理例外中添加了ip git服务器。 git服务器是本地的,但是no_proxy环境变量没有设置正确

我使用这个命令来识别问题:

#Linux:
export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1


#Windows
set GIT_TRACE_PACKET=1
set GIT_TRACE=1
set GIT_CURL_VERBOSE=1
作为回报,有一个“代理授权”,因为git服务器不应该通过代理。 但真正的问题是代理规则

所定义的文件大小

如上所述,首先从bash运行git命令,在开头添加增强的日志指令:GIT_TRACE=1 GIT_CURL_VERBOSE=1 git ...

< p >。GIT_CURL_VERBOSE=1 GIT_TRACE=1 git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin 这将显示详细的错误信息

这种情况经常发生,我的网络连接很慢,我不得不克隆一个相当大的git存储库。最常见的问题是连接关闭,整个克隆被取消。

Cloning into 'large-repository'...
remote: Counting objects: 20248, done.
remote: Compressing objects: 100% (10204/10204), done.
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

经过大量的尝试和错误,以及大量的“远程端意外挂断”之后,我有了一个适合我的方法。这个想法是先做一个浅克隆,然后用它的历史更新存储库。

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

当我尝试从远程克隆时,反复出现同样的问题:

remote: Counting objects: 182, done.
remote: Compressing objects: 100% (149/149), done.
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

最后这招对我有用:

git clone https://username@bitbucket.org/repositoryName.git --depth 1

试试这个

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup

这是我的工作.. capture.png < / p >

正在更改git克隆协议尝试。

例如,当“git clone https://xxxxxxxxxxxxxxx”时发生此错误。

你可以试试“git clone git://xxxxxxxxxxxxxx”,也许可以。

简单的解决方案:与其通过https克隆,不如通过ssh克隆。

例如:

git clone https://github.com/vaibhavjain2/xxx.git - Avoid
git clone git@github.com:vaibhavjain2/xxx.git - Correct

下面这些步骤对我很有用:

cd [dir]
git init
git clone [your Repository Url]

我希望这对你也有用。

网络连接问题 可能是由于持久连接超时 最好的办法是换一个网络。

这些步骤对我有用:使用git://而不是https://

在这里尝试了所有的答案。

我没有SSH密钥,所以谢谢@Do Nhu Vy

https://stackoverflow.com/a/38703069/2481602 < a href = " https://stackoverflow.com/a/38703069/2481602 " > < / >

最后使用

git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master

最终修复问题找到https://stackoverflow.com/a/50959034/2481602

对我来说,问题是在整个克隆完成之前连接就关闭了。我用的是以太网而不是wifi连接。这对我来说就解决了

这种错误似乎在网络连接缓慢或有问题时更常见。我已经连接了良好的网速,然后它工作得很完美。

你需要关闭压缩:

git config --global core.compression 0

然后你需要使用浅克隆

git clone --depth=1 <url>

然后最重要的步骤是CD到克隆的项目中

cd <shallow cloned project dir>

现在拆开克隆,一步一步

git fetch --depth=N, with increasing N

如。

git fetch --depth=4

然后,

git fetch --depth=100

然后,

git fetch --depth=500

你可以通过替换N来选择你想要的步数,

最后下载所有剩下的版本,

git fetch --unshallow 

如果对你有帮助,请点赞:)

此问题出现在代理问题或网络缓慢时。你可以选择深度解决方案,或者

git fetch --all  or git clone


    

如果给出curl 56 Recv失败错误,则通过zip或下载文件 指定分支的名称,而不是——所有

git fetch origin BranchName

这个问题通常发生在克隆大型回购时。如果git clone http://github.com/large-repository --depth 1在windows cmd上不起作用。尝试在windows powershell中运行该命令。

可能有两个原因

  1. 网速很慢(这是我的情况)
  2. 缓冲区大小较小,在这种情况下可以运行命令 Git配置——global http。李postBuffer 524288000 < / >

对我来说,工作的是,因为这个错误可能发生在git的内存需求。我已经将这些行添加到我的全局git配置文件.gitconfig中,该文件存在于$USER_HOME即C:\Users\<USER_NAME>\.gitconfig

[core]
packedGitLimit = 512m
packedGitWindowSize = 512m
[pack]
deltaCacheSize = 2047m
packSizeLimit = 2047m
windowMemory = 2047m

这种情况的发生通常是由于以下原因之一:

  1. 缓慢的互联网。
  • 切换到网络连接稳定的局域网电缆在很多情况下都有帮助。在获取时避免执行任何并行网络密集型任务。
  1. 服务器端TCP/IP连接超时。
  • 你也无能为力。您所能做的就是请求系统管理员或CI/CD团队增加etcp /IP超时时间并等待。
  1. 服务器负载过重。
  • 由于工作时间服务器负载过重,下载大文件可能会不断失败。晚上开始下载后离开你的机器。
  1. 客户端机器上的小HTTPS缓冲区。
  • 增加post和request的缓冲区大小可能会有所帮助,但不能保证

Git配置——global http。postBuffer 524288000

Git配置——global http。maxRequestBuffer 524288000

Git配置——global core.compression 0

这个问题100%解决了。我正面临这个问题,我的项目经理改变了回购的名称,但我使用旧的回购名称。

Engineer@-Engi64 /g/xampp/htdocs/hospitality
$ git clone https://git-codecommit.us-east-2.amazonaws.com/v1/repo/cms
Cloning into 'cms'...
remote: Counting objects: 10647, done.
error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

我是如何解决这个问题的。回购链接是无效的,所以这就是为什么我面临这个问题。克隆前请检查您的回购链接。

这对我很有用

export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1

当我把一些代码推到Github时,我也遇到了同样的问题。

我试过git config --global http.postBuffer 524288000,但它不适合我。

原因

这是因为你的提交历史记录和/或任何文件大小更大。

我的情况

在我的例子中,package-lock。Json导致了这个问题。 它的大小是1500 + KB33K行代码.

我是怎么解决的?

  1. 我提交并推动所有没有package-lock.json
  2. 复制 package-lock.json的内容。
  3. 创建一个新文件与包锁的名称。GitHub回购页面。 . json
  4. 粘贴包锁的内容。json 和提交。
  5. git拉在本地。

和完成。

提示

  • 保持每个提交大小较小
  • 推动经常
  • 使用良好的网络连接

我希望这对你有所帮助。

我也面临着这个问题。解决它。 问题是网速很慢。请检查你的网络连接,别无其他。 我已经连接了良好的网速,然后它工作得很完美。

git clone --global core.compression 0

然后

git clone --depth=1 <https://your_repo.git>

然后

git fetch --depth=2

然后

git fetch --depth=10
< p >… 等等,直到他写出

remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0

最后你可以写

git fetch --unshallow

你会被扔出去

fatal: --unshallow on a complete repository does not make sense

如果在某个阶段你再次得到一个错误,尝试将——深度属性设置为一个更小的值,并逐渐进一步增加

我能够用GitHub桌面克隆回购

我在改为HTTP/1.1之后执行git push时出现此错误。

解决方案:关闭我的VPN并重新运行git push