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

这里的问题是什么?

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

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

当前回答

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

git clone --depth 1 //FORKLOCATION

稍后取消浅化克隆使用

git fetch --unshallow

其他回答

对我来说唯一有效的方法是使用HTTPS链接而不是SSH链接克隆回购。

奥林匹克广播服务公司。:修改http。postBuffer可能还需要设置Nginx配置文件,让gitlab通过调优client_max_body_size的值来接受更大的客户端尺寸。

然而,如果你可以访问Gitlab机器或其网络中的机器,就有一个解决方案,那就是使用git bundle。

转到源计算机上的git存储库 运行git bundle create my-repo。包——所有 (如转移。, rsync) my-repo。绑定文件到目标计算机 在目标机器上,运行git clone my-repo.bundle Git远程地址:path/to/your/repo.git git推

祝你一切顺利!

这对我来说很有效,设置谷歌的命名服务器,因为没有指定标准的命名服务器,然后重新启动网络:

sudo echo "dns-nameservers 8.8.8.8" >> /etc/network/interfaces && sudo ifdown venet0:0 && sudo ifup venet0:0

浪费了几个小时尝试这些解决方案,但最终追踪到公司IPS(仪器保护系统)在传输一定量的数据后断开了连接。

基于这个答案,我尝试如下(使用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>