无法推送代码至GitHub:持续报错、卡顿与断开连接求助
Git推送到GitHub失败的解决办法
1. 彻底清理Git历史中的大文件
你虽然删除了视频文件夹,但Git提交记录里还保留着这些大文件,导致打包体积超过GitHub的2.00 GiB限制。用BFG工具快速清理:
- 下载BFG的jar包后,在本地仓库根目录执行:
java -jar bfg-1.14.0.jar --delete-files "*.mp4" ./ - 清理Git冗余数据:
git reflog expire --expire=now --all && git gc --prune=now --aggressive - 强制推送修改后的历史(因为历史已被改写):
git push origin main --force
2. 优化SSH连接避免超时
ssh -T验证通过不代表连接不会中途断开,修改SSH配置保持连接活性:
- 编辑
~/.ssh/config(没有则新建该文件),添加:
这会每隔60秒向GitHub发送一次保活包,防止连接被远端主动切断。Host github.com ServerAliveInterval 60 ServerAliveCountMax 3
3. 分批次推送提交
如果仍卡在writing objects环节,尝试拆成小批次推送:
- 先推送最近5个提交:
成功后逐步增加推送的提交数量(比如改为git push origin HEAD~5:mainHEAD~10),直到推完所有内容。
4. 重置Git配置排除干扰
- 取消之前设置的超大
http.postBuffer,避免缓冲区溢出问题:git config --global --unset http.postBuffer - 确认使用SSH协议推送,避开HTTPS的额外限制:
git remote set-url origin git@github.com:你的组织名/目标仓库名.git
5. 排查网络环境问题
- 切换到有线网络,WiFi信号波动容易导致推送中途断开。
- 如果网络受限,配置SSH代理(替换为你的代理地址和端口):
git config --global core.sshCommand "ssh -o ProxyCommand='nc -x 127.0.0.1:1080 %h %p'"
内容的提问来源于stack exchange,提问作者Lieutenant Dan
相关产品推荐
相关产品推荐

