git clone 以 Broken Pipe 结束

标签 git ssh git-clone

我有一个非常大的 git 存储库,想从中克隆。在一台机器上(ArchLinux 和 git 版本 2.2.2) 一切正常...

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.
...

...但是在另一台机器上(带有 git 版本 2.3.0 的 Ubuntu,也尝试过 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

知道问题出在哪里吗?

顺便说一句:

  • 远端是一个gitlab服务器。
  • 我在这两种情况下都使用 SSH。
  • 第一台(工作中的)机器通过 VPN (100 MBit/s) 连接。
  • 第二台(不工作的)机器与 gitlab 服务器位于同一个千兆子网中。

最佳答案

已解决! 我使用了一个 DNS 名称来连接到 gitlab 服务器,而我不知道的是:这个名称已被解析为同一服务器的外部 IP,所以,服务器和客户端不在同一个子网中

因此,客户端连接到服务器的外部 IP,因此防火墙必须将其 NAT 返回到服务器。

解决方案非常简单:我只是将带有内部 ip 的主机名添加到客户端计算机的 /etc/hosts 文件中,然后从该文件中克隆就像一个魅力。

关于git clone 以 Broken Pipe 结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28404754/

相关文章:

git - 如何获取所有分支 - 包括 remotes 远程分支?

git - 通过ssh克隆Bitbucket存储库

git - 在 gitbash 中使用 git pull 运行批处理文件

javascript - 为什么在我的项目中禁用了 greenkeeper ..?

linux - 如何使用 sed ssh 更改值

linux - H2O 连接错误 : HTTP 403 Forbidden

php - 使用特定用户验证私有(private) vcs

gitolite:允许任何 repo RW+CD 的 RW 用户到他们的个人分支,不允许其他人

windows - 上传代码到github

windows - 如何在 Windows 上通过 ssh 阻止 git 解析错误的路径?