38人参与 • 2025-09-22 • 其他编程
在日常开发中,我们经常会遇到这样的问题:
remote: file [xxx.exe] size 188.156mb, exceeds quota 100mb remote: please remove the file[s] from history and try again
这是因为 gitee/github 等平台对单个文件大小有限制(一般是 100mb)。一旦提交了超过限制的大文件,push 就会被拒绝。
本文以我遇到的一个 exe 安装包 被错误提交进 git 仓库为例,分享一下完整的解决思路。
很多同学第一反应是直接删除项目里的 exe 文件,然后再提交一次。
但是问题在于:
所以必须 从历史中彻底移除 这个文件。
git filter-repo 是官方推荐的替代工具,比 filter-branch 更快更简单。
pip install git-filter-repo
⚠️ 注意:git filter-repo 会修改整个提交历史。为了安全,最好新克隆一份仓库来操作:
git clone https://gitee.com/xxx/your-repo.git clean-repo cd clean-repo
例如删除 yoloandhalcon/mainpro/发布/屏蔽盖setupv1.0.exe:
git filter-repo --path yoloandhalcon/mainpro/发布/屏蔽盖setupv1.0.exe --invert-paths
这会把该文件从整个历史中移除。
git push origin --force
完成后,大文件就不再存在于远程仓库了。
很多时候,exe、zip、mp4、训练模型等大文件 根本不应该放在 git 仓库里。
在项目根目录添加 .gitignore:
# 忽略编译生成的二进制文件 *.exe *.dll *.so *.dylib # 忽略压缩包 *.zip *.rar *.7z *.tar *.gz # 忽略大数据文件 *.csv *.json *.xlsx *.db # 忽略图片和视频(按需开启) *.mp4 *.avi *.mov *.jpg *.png # 忽略机器学习模型 *.pt *.onnx *.h5 *.ckpt *.pb
提交后,这些文件就不会再被 git 跟踪。
如果确实需要(比如模型文件、视频数据),推荐两种方式:
git filter-repo 从历史中彻底删除。.gitignore,避免 exe、zip、模型文件等被误提交。到此这篇关于git大文件推送失败问题及解决方案的文章就介绍到这了,更多相关git大文件推送失败内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论