You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git推送时writing objects耗时久且报远程意外挂断致命错误,如何解决?

解决Git推送因历史大文件导致的“fatal: the remote hung up unexpectedly”错误

步骤1:确认历史中的大文件残留

先定位仓库历史中体积最大的文件,确认目标大文件是否还存在:

git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -10 | awk '{print$1}')"

执行后会列出历史中Top10的大文件,检查那个2.7GB的zip文件是否在列表内。

步骤2:彻底移除大文件的所有历史痕迹

使用git filter-repo工具清理目标文件的所有提交记录:

  1. 确保已安装git-filter-repo(可通过系统包管理器或pip install git-filter-repo安装)
  2. 执行清理命令(替换unwanted.zip为实际的文件路径和名称):
git filter-repo --path unwanted.zip --invert-paths

步骤3:清理本地仓库冗余数据

执行Git垃圾回收,彻底清除本地残留的无用对象:

git gc --prune=now --aggressive

步骤4:强制推送清理后的分支

由于已重写本地分支历史,需要强制推送到远程仓库(多人协作仓库需提前告知团队成员,避免冲突):

git push origin <你的分支名称> --force

额外排查:若仍推送失败

  • 调整Git的HTTP推送缓存大小,避免因缓存不足断开连接:
git config --global http.postBuffer 524288000
  • 若使用托管平台(如GitLab/GitHub),可检查远程分支是否仍有残留的大文件提交,部分平台在强制推送后会自动同步清理,若未生效可参考平台文档手动清理远程缓存

内容的提问来源于stack exchange,提问作者Foeke Boersma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 02:57:20