ssh-Git获取/拉/克隆挂在接收对象上

从git仓库中获取或提取信息,或克隆存储库时,我到了这一点:

remote: Counting objects: 6666, done.
remote: Compressing objects: 100% (5941/5941), done.
Receiving objects:  23% (1534/6460), 11.68 MiB | 23 KiB/s  

它挂了。 对象的23%/数目不是给定的,它的范围从个位数到60年代不等。 列出的下载速度也会冻结-并不是像它缓慢地向零爬行一样。

我旁边的那个家伙没有问题,所以这不是路由器问题。 我们将beantalk用作我们的工作存储库,但是我遇到了来自beantalk和github的问题(尽管有时它似乎会完成一个github)。

自升级到Mountain Lion和更新Xcode以来,这个问题似乎才出现。 我擦了git(包括XCode的),并尝试用自制软件安装它。 那没有用,所以我将其删除并尝试使用他们提供的Mac安装软件包,该软件包也无法解决该问题。

Beanstalk为git存储库提供SSH URL,但是通过SCP或SSH连接到我已经完成工作的服务器时,我没有任何问题。

这扼杀了我的工作流程,因此不胜感激!

gabeb asked 2020-08-12T10:20:23Z
5个解决方案
20 votes

NAT上的VMware对我来说有这个问题。 将其更改为桥接(复制状态)可解决此问题。

Anand Rockzz answered 2020-08-12T10:20:30Z
8 votes

尝试检查您的网络连接。 路由表中可能存在垃圾。 也许路由器上的端口损坏或计算机的网络接口有问题。 尝试对要从中克隆git repo的服务器执行ping操作,可能您的计算机与该服务器之间的链接不稳定。

cjayho answered 2020-08-12T10:20:52Z
7 votes

看起来类似于我的问题。 经过一段时间后,Git似乎挂在获取或推送上。我可以建议您放入~/.ssh/config

Host *

ServerAliveInterval 60

我还有山狮的MBP。 我希望这个超时是您遇到问题的原因。(大约三十或四十分钟后,我注意到它还在继续。)

driek answered 2020-08-12T10:21:17Z
2 votes

在Mac上,使用Git 2.22(2019年第二季度)时,git fetch应该更能抵抗此类问题:在使用SIGPIPE(例如OSX)杀死“ git fetch”的平台上,在另一端挂起的SIGPIPE 检测到错误后,可能会导致“ write()”死于信号,从而导致进行了易燃性测试。
现在,“ EPIPE”在其操作的网络部分会忽略SIGPIPE(这不是问题,因为我们检查了write(2)s的返回状态)。

参见Jeff King(SIGPIPE)的commit 1435889(2019年3月3日)和commit 37c8001(2019年3月5日)。
(由Junio C Hamano合并-SIGPIPE-在commit 27cdbdd中,2019年3月20日)

SIGPIPE:在网络运行期间忽略write()

默认的SIGPIPE行为可用于生成以下命令 很多输出:如果我们输出的接收器消失了,我们将 异步通知以停止生成它(通常是通过杀死 程序)。

但是对于像SIGPIPE这样的命令,它主要与 接收数据并将其写入磁盘,可能是意外的write() 尴尬。 我们已经在检查所有EPIPE的返回值 通话,由于信号而死亡使我们失去了优雅地机会 处理错误。

在Linux上,提取期间通常不会看到SIGPIPE。 如果 网络连接的另一端挂断,我们将看到write()
但是在OS X上,我们得到了EPIPE,该进程被终止了。

让我们在获取的网络部分忽略SIGPIPE,这将 导致我们的write()返回EPIPE,从而使我们在 平台。

VonC answered 2020-08-12T10:22:21Z
-18 votes

首先尝试通过键入来初始化git repository文件夹

$ git init

它应该有所帮助

Damian Wojcik answered 2020-08-12T10:22:45Z
translate from https://stackoverflow.com:/questions/11941175/git-fetch-pull-clone-hangs-on-receiving-objects