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

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


当前回答

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

缓慢的互联网。

切换到网络连接稳定的局域网电缆在很多情况下都有帮助。在获取时避免执行任何并行网络密集型任务。

服务器端TCP/IP连接超时。

你也无能为力。您所能做的就是请求系统管理员或CI/CD团队增加etcp /IP超时时间并等待。

服务器负载过重。

由于工作时间服务器负载过重,下载大文件可能会不断失败。晚上开始下载后离开你的机器。

客户端机器上的小HTTPS缓冲区。

增加post和request的缓冲区大小可能会有所帮助,但不能保证

Git配置——global http。postBuffer 524288000 Git配置——global http。maxRequestBuffer 524288000 Git配置——global core.compression 0

其他回答

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

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

原因

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

我的情况

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

我是怎么解决的?

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

和完成。

Tips

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

我希望这对你有所帮助。

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

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

例如:

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

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

git fetch --all  or git clone 

    

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

git fetch origin BranchName 

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

例如:GIT_CURL_VERBOSE=1 GIT_TRACE=1 git -c diff.mnemonicprefix=false -c core。Quotepath =错误的获取源 这将显示详细的错误信息。