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连接到我已经完成工作的服务器时,我没有任何问题。
这扼杀了我的工作流程,因此不胜感激!
NAT上的VMware对我来说有这个问题。 将其更改为桥接(复制状态)可解决此问题。
尝试检查您的网络连接。 路由表中可能存在垃圾。 也许路由器上的端口损坏或计算机的网络接口有问题。 尝试对要从中克隆git repo的服务器执行ping操作,可能您的计算机与该服务器之间的链接不稳定。
看起来类似于我的问题。 经过一段时间后,Git似乎挂在获取或推送上。我可以建议您放入~/.ssh/config
:
Host *
ServerAliveInterval 60
我还有山狮的MBP。 我希望这个超时是您遇到问题的原因。(大约三十或四十分钟后,我注意到它还在继续。)
在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
,从而使我们在 平台。
首先尝试通过键入来初始化git repository文件夹
$ git init
它应该有所帮助