我有一个非常大的git存储库,想要从中克隆它。在一台机器上(带有git版本2.2.2的ArchLinux)一切正常......
Cloning into 'foo'
remote: Counting objects: 2372505, done
remote: Compressing objects: 100% (456914/456914), done.
Receiving objects: 100% (2372505/2372505), 3.81 GiB | 6.20 MiB/s, done.
...
...但是在另一台机器上(Ubuntu使用git版本2.3.0,也尝试使用1.7.0.4),我只看到以下内容:
Cloning into 'foo'
remote: Counting objects: 2372505, done.
几个小时后,以
结束Write failed: Broken pipe
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
知道问题是什么吗?
顺便说一下:
答案 0 :(得分:1)
关于GitLab,this thread提及(针对类似错误)
我通过编辑
git/config/unicorn.yml
并将超时设置为120(之前为30)并重新启动gitab服务来解决该问题(无法通过HTTP检出大型回购)。
如果这不仅仅是关于Git托管服务器,而是关于Git本身,那么您还可以尝试其他选项:
答案 1 :(得分:1)
解决了!我使用DNS名称连接到gitlab服务器,而我不知道:这个名称已解析为同一服务器的外部IP,因此,服务器和客户端不在同一子网中。
因此,客户端连接到服务器的外部IP,因此防火墙必须将NAT重新连接回服务器。
解决方案非常简单:我只是将带有内部ip的主机名添加到客户端计算机的/etc/hosts
文件中,并且克隆上的主机名就像魅力一样。
答案 2 :(得分:0)
对我来说,在尝试了所有在网络上找到的建议后,事实证明VPN连接一直在不断地连接和断开。看来,如果有太多的“网络中断”或有损网络,则git clone“ jams”,最终您会收到Broken pipe-error消息。
要进行调试,如果发生任何实际流量,可以使用
iptraf
或
tcpdump -ni eth0 host github.com
在我的情况下,最初有2MB / s的稳定流量,但几秒钟后,基础连接断开,克隆流再也无法恢复,直到我修复OpenVPN连接以保持稳定为止。 / p>