我的git客户端在尝试克隆存储库一段时间后反复失败,出现以下错误。

这里的问题是什么?

注意:我已经向GIT托管提供商注册了我的SSH密钥

Receiving objects:  13% (1309/10065), 796.00 KiB | 6 KiB/s
fatal: The remote end hung up unexpectedly

当前回答

在MacOSX High Sierra游戏中,我的解决方案是:

brew install git-lfs

我的存储库被克隆了,没有任何错误。

其他回答

我也有同样的问题。这个问题的原因正如Kurtis对GNUTLS的描述。

如果你有同样的原因,并且你的系统是Ubuntu,你可以通过从ppa安装最新版本的git来解决这个问题:git-core/ppa。命令如下所示。

sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get git

基于这个答案,我尝试如下(使用https url):

repo初始克隆:

Git克隆——深度为25的url-here

Fetch每次尝试深度增加两次提交:

Git取回——深度50

Git取回——深度为100

Git取回深度200

...等等

最终(当我认为足够的获取),我运行git fetch -unshallow -它就完成了。

这个过程显然需要更多的时间,但在我的情况下设置http。postBuffer和core.compression没有帮助。

UPD:我发现通过ssh获取适用于任何回购大小(偶然发现),用git clone <ssh url>完成,前提是你已经创建了ssh密钥。一旦repo获取,我改变远程地址使用git远程set-url <https url repo>

我的经验是,这肯定是某个地方的连接超时。

最终,我在电脑上插入了一个蹩脚的wifi适配器,并使用了手机的热点。

当我使用有线连接到我的ISP时,向Github上传一个小更改是可以的,所以连接和身份验证在原则上是有效的。 但是当尝试推送一个新的80Mb存储库时,出现了错误。

在设法通过wifi加密狗/热点推动回购后,小的增量变化很好。

当我从由elastic beanstalk管理的AWS EC2实例上托管的远程git repo克隆数据(通过HTTP)时,我就遇到了这个问题。 克隆本身也是在AWS EC2实例上完成的。

我尝试了上述所有的解决方案以及它们的组合:

setting git's http.postBuffer settinghttp.maxrequestbuffer turning off git compression and trying "shallow" git clone and then git fetch --unshallow - see fatal: early EOF fatal: index-pack failed tunning GIT memory settings - packedGitLimit et al, see here: fatal: early EOF fatal: index-pack failed tunning nginx configuration - setting client_max_body_size to both big value and 0 (unlimited); setting proxy_request_buffering off; setting options single-request in /etc/resolv.conf throttling git client throughput with trickle using strace for tracing git clone considering update of git client

在所有这些之后,我仍然一次又一次地面临同样的问题,直到我发现这个问题是在弹性负载均衡器(ELB)切断连接。 在直接访问EC2实例(一个托管git repo)而不是通过ELB之后,我终于成功克隆了git repo! 我仍然不确定是哪个ELB(超时)参数导致了这一点,所以我仍然需要做一些研究。

更新

改变AWS弹性负载均衡器的连接耗尽策略,将超时时间从20秒提高到300秒,似乎为我们解决了这个问题。

git克隆错误和“连接耗尽”之间的关系很奇怪,对我们来说并不明显。可能是连接耗尽超时更改导致ELB配置中的一些内部更改,从而修复了过早关闭连接的问题。

这是AWS论坛上的相关问题(还没有答案):https://forums.aws.amazon.com/thread.jspa?threadID=258572

这是由于网络连接问题,我也遇到过同样的问题。 我做了一个浅层的代码副本使用

git clone --depth 1 //FORKLOCATION

稍后取消浅化克隆使用

git fetch --unshallow