我尝试从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
如何避免此错误?
答案 0 :(得分:118)
它经常发生,我在一个缓慢的互联网连接,我必须克隆一个体面的巨大的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
答案 1 :(得分:34)
几天后,今天我刚刚解决了这个问题。生成ssh密钥,请遵循以下文章:
https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/
将其声明为
然后按命令克隆:
git clone username@mydomain.com:my_group/my_repository.git
没有错误发生。
以上问题
错误:RPC失败;卷曲18转移关闭与优秀读取数据 其余
因为通过HTTP协议(curl
命令)克隆时出错。
并且,您应该增加缓冲区大小:
git config --global http.postBuffer 524288000
答案 2 :(得分:13)
您需要关闭压缩:
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
如果有帮助,请投票:)
答案 3 :(得分:8)
当我尝试从遥控器克隆时,重复出现同样的问题:
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
答案 4 :(得分:4)
如上所述,首先从bash运行你的git命令,在开头添加增强的日志指令:GIT_CURL_VERBOSE=1 GIT_TRACE=1 git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin
e.g。 {{1}} 这将显示详细的错误信息。
答案 5 :(得分:3)
git config --global http.postBuffer 524288000
git 配置 --global http.maxRequestBuffer 524288000
git config --global core.compression 0
答案 6 :(得分:2)
网络连接问题。
可能是由于持续的连接超时。
最好的方法是更改为另一个网络。
答案 7 :(得分:2)
这些步骤对我有用: https://代替git://
答案 8 :(得分:1)
With me this problem occurred because the proxy configuration. I added the ip git server in the proxy exception. The git server was local, but the no_proxy environment variable was not set correctly.
I used this command to identify the problem:
#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
In return there was the "Proxy-Authorization" as the git server was spot should not go through the proxy. But the real problem was the size of the files defined by the proxy rules
答案 9 :(得分:1)
当您出现代理问题或网络速度慢时,此问题就会出现。您可以选择深度解决方案或
git fetch --all or git clone
如果出现错误 curl 56 Recv failure ,请通过zip或 命名分支的名称,而不是-all
git fetch origin BranchName
答案 10 :(得分:1)
此错误似乎更常见于互联网连接速度缓慢或出现问题的情况。我已经以良好的互联网速度进行连接,然后运行良好。
答案 11 :(得分:1)
对我来说,问题是连接在整个克隆完成之前就关闭了。我用以太网代替了wifi连接。然后为我解决
答案 12 :(得分:1)
对我来说有效的是,因为 git 的内存要求可能会发生此错误。我已将这些行添加到 $USER_HOME 中的全局 git 配置文件 .gitconfig 中,即 C:\Users\<USER_NAME>\.gitconfig
[core]
packedGitLimit = 512m
packedGitWindowSize = 512m
[pack]
deltaCacheSize = 2047m
packSizeLimit = 2047m
windowMemory = 2047m
答案 13 :(得分:1)
简单解决方案:而不是通过https克隆,通过ssh克隆它。
例如:
git clone https://github.com/vaibhavjain2/xxx.git - Avoid
git clone git@github.com:vaibhavjain2/xxx.git - Correct
答案 14 :(得分: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
我是如何解决这个问题的。回购链接无效,所以这就是我面临这个问题的原因。克隆前请检查您的回购链接。
答案 15 :(得分:0)
这对我有用
export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1
答案 16 :(得分:0)
可能是两个原因
答案 17 :(得分:0)
克隆大型存储库时通常会出现此问题。如果git clone http://github.com/large-repository --depth 1
在Windows cmd上不起作用。尝试在Windows PowerShell中运行命令。
答案 18 :(得分:0)
在这里尝试了所有答案。 我试图将可可粉添加到我的机器上。
我没有SSH密钥,所以谢谢@Do Nhu Vy
https://stackoverflow.com/a/38703069/2481602
最后使用
git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master
答案 19 :(得分:0)
更改git clone协议以尝试。
例如,当“git clone https://xxxxxxxxxxxxxxx”
时发生此错误你可以尝试使用“git clone git:// xxxxxxxxxxxxxx”,也许可以。
答案 20 :(得分:-3)
这些步骤对我有用:
cd [dir]
git init
git clone [your Repository Url]
我希望这也适合你。
答案 21 :(得分:-5)
试试这个
$ 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