Mac OS Yosemite下Git推送17MB文件遇Broken Pipe错误求助
解决GitHub推送文件时出现Broken pipe/远程挂掉的问题
嘿,我之前在Mac系统上推送大文件到GitHub时也碰到过一模一样的错误!结合你给出的错误日志(packet_write_wait: Connection to 192.30.253.113 port 22: Broken pipe),大概率是连接超时或者Git推送缓冲区不足导致的,给你几个亲测有效的解决办法:
1. 增大Git的推送缓冲区
默认的Git推送缓冲区可能不够容纳17MB文件的传输需求,执行下面的命令全局调整缓冲区大小(设为500MB,完全覆盖你的需求):
git config --global http.postBuffer 524288000 git config --global ssh.postBuffer 524288000
2. 配置SSH保持连接活跃
Mac OS Yosemite自带的SSH客户端有时候会因为长时间无数据传输被服务器断开,你可以在~/.ssh/config文件里添加以下配置(如果文件不存在就新建一个):
Host github.com Hostname github.com User git ServerAliveInterval 60 ServerAliveCountMax 5
这个配置会让SSH每隔60秒向GitHub发送一个心跳包,避免连接被意外断开。
3. 延长Git的HTTP超时时间(针对HTTPS方式)
如果你用HTTPS方式还是失败,可以延长HTTP请求的超时时间,给传输足够的时间完成:
git config --global http.timeout 300
这里设为300秒(5分钟),足够17MB文件完成传输了。
4. 确认没有隐藏的超大文件
有时候我们可能不小心把更大的文件加入了Git仓库,你可以用下面的命令列出仓库里所有文件的大小,确认没有超过GitHub的单文件限制(GitHub当前单文件限制为100MB,你的17MB没问题,但检查一下更稳妥):
git ls-files -s | sort -k 2 -n -r
试试上面的方法,应该就能解决你的推送问题了!
内容的提问来源于stack exchange,提问作者mgross
相关产品推荐
相关产品推荐

