首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >超过100MB的大文件Gitee提交失败,怎么解决?

超过100MB的大文件Gitee提交失败,怎么解决?

作者头像
不脱发的程序猿
发布2026-06-24 09:18:06
发布2026-06-24 09:18:06
1650
举报

最近提交代码时,Gitee 把 push 拦下来了。

原因很直接:有个大文件超过限制,提示大概是 100MB 这一类。

我一开始以为很简单:把文件删掉,再提交一次。

结果还是失败。

后来才反应过来,Git 不是只看当前目录。这个大文件只要曾经被 commit 过,即使后来删了,它还在 Git 历史里。Gitee 检查到历史对象里有超限文件,照样拒绝。

嵌入式项目很容易踩这个坑。

固件包、bin、hex、elf、map、SDK 压缩包、抓包日志、客户现场日志,一次 git add . 就可能混进去。

1

先判断文件有没有进历史

如果只是暂存,还没提交:

代码语言:javascript
复制
git restore --staged path/to/big-file.bin

然后加到 .gitignore:

代码语言:javascript
复制
build/
output/
*.bin
*.hex
*.elf
*.map
*.zip
*.7z
*.log
*.pcap

如果已经 commit 过,就不是删文件这么简单了。

2

找出历史里的大文件

Git Bash 可以用:

代码语言:javascript
复制
git rev-list --objects --all |
git cat-file --batch-check="%(objecttype) %(objectname) %(objectsize) %(rest)" |
grep "^blob" |
sort -k3 -n |
tail -20

PowerShell 可以用:

代码语言:javascript
复制
git rev-list --objects --all |
  git cat-file --batch-check="%(objecttype) %(objectname) %(objectsize) %(rest)" |
  Select-String "^blob" |
  Sort-Object { [int64](($_ -split "\\s+")[2]) } |
  Select-Object -Last 20

看见 build/xxx.elf、release/xxx.zip、xxx.bin 这类路径,就基本知道问题在哪了。

3

只在最后一次提交里,直接改最后一次提交

如果大文件只在最后一次 commit 里:

代码语言:javascript
复制
git rm --cached path/to/big-file.bin
git add .gitignore
git commit --amend
git push

--cached 表示只从 Git 里移除,本地文件还在。

4

已经进多次历史,用 filter-repo 清掉

安装:

代码语言:javascript
复制
pip install git-filter-repo

清理指定文件:

代码语言:javascript
复制
git filter-repo --path path/to/big-file.bin --invert-paths

清理整个构建目录:

代码语言:javascript
复制
git filter-repo --path build/ --invert-paths

清理本地对象:

代码语言:javascript
复制
git gc --prune=now --aggressive

推送:

代码语言:javascript
复制
git push --force-with-lease origin main

如果是团队仓库,先通知大家暂停提交。改写历史后,最好让成员重新克隆,别各自乱 rebase。

5

大文件以后放哪里

不要把 Git 当网盘。

文件

建议位置

固件发布包

Gitee Release 或制品库

编译生成的 bin/hex/elf

CI 产物

SDK 压缩包

文件服务器,文档写版本和哈希

抓包、日志、波形

问题单附件或日志服务器

必须版本化的大资源

Git LFS

Git LFS 可以用,但不是万能药。

已经进普通 Git 历史的大文件,不会因为你执行 git lfs track 就自动消失。该清历史还是要清。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 美男子玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档