当前位置: 首页 > news >正文

【git】Git 大文件推送失败问题及解决方案

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 历史中
  • 即使最新提交删除了它,push 时远程仍然会检测到它的历史,依然报错

所以必须 从历史中彻底移除 这个文件。


二、用 git filter-repo 删除大文件

git filter-repo 是官方推荐的替代工具,比 filter-branch 更快更简单。

1. 安装

pip install git-filter-repo

2. 在干净仓库中操作

⚠️ 注意:git filter-repo 会修改整个提交历史。为了安全,最好新克隆一份仓库来操作:

git clone https://gitee.com/xxx/your-repo.git clean-repo
cd clean-repo

3. 删除大文件

例如删除 YoloAndHalcon/MainPro/发布/屏蔽盖SetupV1.0.exe

git filter-repo --path YoloAndHalcon/MainPro/发布/屏蔽盖SetupV1.0.exe --invert-paths

这会把该文件从整个历史中移除。

4. 强制推送

git push origin --force

完成后,大文件就不再存在于远程仓库了。


三、如何避免 exe 等大文件被跟踪?

很多时候,exezipmp4、训练模型等大文件 根本不应该放在 Git 仓库里

1. 使用 .gitignore

在项目根目录添加 .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 跟踪。


2. 如果必须保存大文件

如果确实需要(比如模型文件、视频数据),推荐两种方式:

  • Git LFS(适合版本控制大文件,但 Gitee 免费版只有 1GB 限额)
  • Release 附件 / 网盘 / OSS(不占用 Git 仓库空间,更加灵活)

四、总结

  1. 遇到 push 报错提示大文件超 100MB,要用 git filter-repo 从历史中彻底删除。
  2. 操作步骤:新克隆仓库 → 执行删除命令 → 强制推送。
  3. 平时要提前配置好 .gitignore,避免 exe、zip、模型文件等被误提交。
  4. 一句话经验:源代码放 Git,大文件放 Release/网盘,二者分开管理,省心省力。

文章转载自:

http://I4VDHPnN.dqzcf.cn
http://UGfzdcQ4.dqzcf.cn
http://SwYsrxmP.dqzcf.cn
http://eiWpB9tq.dqzcf.cn
http://1b1lP8hx.dqzcf.cn
http://OVuGz78f.dqzcf.cn
http://05d4UEg4.dqzcf.cn
http://1ie9xbwP.dqzcf.cn
http://j5qxgViY.dqzcf.cn
http://BD92FHCK.dqzcf.cn
http://b9So86tG.dqzcf.cn
http://nCK6WpkF.dqzcf.cn
http://G9cPrAHD.dqzcf.cn
http://iSh67Qyz.dqzcf.cn
http://81IHUNrz.dqzcf.cn
http://zuFnZrD8.dqzcf.cn
http://yeqcM4qI.dqzcf.cn
http://q55OwRb5.dqzcf.cn
http://Aib7pwhT.dqzcf.cn
http://uL0IDpqH.dqzcf.cn
http://BQWdpugU.dqzcf.cn
http://xVwXzRTL.dqzcf.cn
http://wRjRlL8t.dqzcf.cn
http://zivaWl6p.dqzcf.cn
http://uxoQtM38.dqzcf.cn
http://fq7Nagzn.dqzcf.cn
http://xicU4sT8.dqzcf.cn
http://IgM95Q5v.dqzcf.cn
http://FB2yB94g.dqzcf.cn
http://oy47EAVP.dqzcf.cn
http://www.dtcms.com/a/375924.html

相关文章:

  • ctfshow-web入门-php特性(二)
  • CSP认证练习题目推荐 (1)
  • MySQL 命令
  • MyBatis操作数据库——进阶
  • huggingFace学习之编码工具
  • 人工智能期末复习(部分)
  • 【Pytorch】2025 Pytorch基础入门教程(完整详细版)
  • Cookie 与 Session 的关系详解
  • Java微服务架构拆分:边界原则的实战破局与多场景案例解析
  • expect脚本详解
  • 交通识别摄像头以及带AI算法
  • SpringMVC通过注解实现全局异常处理
  • Linux基础知识(四)
  • 向量化与嵌入模型:RAG系统背后的隐形英雄
  • 你知道zip()和zip(*)怎么用吗?
  • 工业领域企业CRM常用的有哪些系统?
  • Git cherry-pick 与分支重置技术实现代码健全性保障下的提交记录精简
  • 【Nginx 运维实战】版本替换:强制 vs 平滑升级全解析
  • HTTPS加解密流程解析
  • Android 升级minSdkVersion 导致 包体积变大的处理
  • Linux系统 Python3.12版本连接达梦数据库dmPython和django_dmPython
  • 零知开源——ESP32驱动OV7670摄像头实现简易照相机系统
  • 前端开发工具trae的使用
  • Coze源码分析-资源库-创建插件-前端源码-核心组件
  • 数据集成平台怎么选?从ETL到CDC再到iPaaS的全景对比
  • 【Linux基础】Linux系统配置IP详解:从入门到精通
  • 2025版基于springboot的企业考勤管理系统
  • 【计算机毕业设计选题】2025-2026年计算机毕业设计选题经验与项目推荐
  • Python数据处理管道完全指南:从基础到高并发系统实战
  • VMware安装CentOS 7教程