平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“Git大文件推送失败问题及解决方案”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
在日常开发里,我们经常会遇到这样的问题:
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大文件推送失败内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多兼容脚本之家!
tplink5620千兆版有没有itv功能(tplink5620千兆版有itv功能吗)
tplink5620易展版和标准版区别详解(tplink5620易展版和标准版区别是什么)
tplink5620怎么设置无线桥接(tplink5620无线桥接设置方法)
单机离线部署OceanBase3.1.5完整指南
检查前端元素的小技巧整理(适合新手)实用指南
Android使用ViewPager2实现方式简单的轮播图的代码示例实用指南