使用GitHub LFS推送50GB文件时遇Failed to push some refs错误求助
解决方案
1. 检查GitHub LFS存储限额
GitHub免费版LFS仅提供1GB存储和每月1GB带宽,50GB文件总量远超免费额度,这是推送失败的核心原因之一。
- 执行
git lfs ls-files确认已跟踪的大文件总大小 - 升级GitHub付费方案(如Pro/Team版)获取对应LFS存储(Pro版含50GB存储、50GB月带宽)
2. 验证LFS文件跟踪配置
确保所有大文件都被LFS正确跟踪:
- 查看
.gitattributes文件,确认包含对应文件类型的跟踪规则,例如*.iso filter=lfs diff=lfs merge=lfs -text - 若有遗漏文件,执行
git lfs track "*.xxx"(替换为你的文件后缀),再提交配置文件:git add .gitattributes && git commit -m "Update LFS tracking rules"
3. 修复LFS本地缓存问题
重置LFS缓存后重新推送:
- 清理本地LFS缓存:
git lfs prune - 重新拉取LFS对象:
git lfs fetch - 强制推送所有LFS对象:
git lfs push --all origin main
注:优先用
git lfs push --all,避免普通git push遗漏LFS文件
4. 拆分文件或分批推送
若暂不升级方案,可拆分超大文件(GitHub LFS单个文件最大限制5GB)后分批推送:
- 撤销上次提交:
git reset HEAD~1 - 拆分文件后重新添加提交:
git add . && git commit -m "Add split large files" - 分批推送LFS对象:
git lfs push origin main --include="file1.ext",完成后再推送下一批
5. 调整网络超时设置
网络不稳定或超时会导致推送失败,修改Git配置:
- 增大HTTP缓冲区:
git config --global http.postBuffer 524288000(500MB) - 延长LFS超时时间:
git config --global lfs.timeout 3600(1小时) - 切换至稳定的有线网络环境
6. 重置分支后重新提交
若之前的rebase操作导致提交历史混乱,重置本地分支后重新操作:
- 备份本地修改:
git stash - 重置本地main分支到远程状态:
git reset --hard origin/main - 重新添加文件并提交:
git add . && git commit -m "Add large files via LFS" - 推送:
git lfs push --all origin main && git push origin main
内容的提问来源于stack exchange,提问作者Omar FF
相关产品推荐
相关产品推荐

