当我试图从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

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


当前回答

对我来说,这个问题是因为代理配置。我在代理例外中添加了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服务器不应该通过代理。 但真正的问题是代理规则定义的文件大小

其他回答

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

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

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

我尝试了git配置——global http。postBuffer 524288000,但它没有为我工作。

原因

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

我的情况

在我的例子中,是包锁。Json导致了这个问题。 它的大小为1500+KB,代码行数为33K。

我是怎么解决的?

我提交并推送了所有没有package-lock.json的东西 复制package-lock.json的内容。 创建一个名为package-lock的新文件。json从GitHub回购页面。 粘贴包锁的内容。Json并提交。 少管员停在本地。

和完成。

Tips

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

我希望这对你有所帮助。

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

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

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

申报给

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

然后通过命令克隆:

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

没有错误发生。

上述问题

RPC失败;Curl 18传输关闭,读取数据出色 剩下的

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

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

git config --global http.postBuffer 524288000