【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://www.pswp.cn/news/921763.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/921763.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国产银河麒麟三维数字沙盘大数据可视化研训推演模拟仿真地理信息系统

国产银河麒麟三维数字沙盘大数据可视化研训推演模拟仿真地理信息系统独立自主知识产权和原创源代码级地理信息系统平台,核心引擎与算法实现全栈国产化,提供从数据采集、处理到可视化分析的全链条自主可控解决方案, 1.2支持国产操作系统&…

GPT Server 文档

目录配置文件的详细说明(后续持续完善)openai_api_server配置控制器(controller)配置模型(worker)配置模型配置大语言模型 示例:QwenEmbedding模型 示例:Conan-embedding-v1TTS文本转语音模型 示例: Spark-TTST2I 文生图模型示例:…

中国移动云电脑一体机-创维LB2004_瑞芯微RK3566_2G+32G_开启ADB ROOT安卓固件-方法3

中国移动云电脑一体机-创维LB2004_瑞芯微RK3566_2G32G_开启ADB ROOT安卓固件-方法3 声明,这个安卓固件root一旦恢复出厂设置,会变回原样,虽然root,但也无法自行操作。 建议按照:中国移动云电脑一体机-创维LB2004_瑞芯微…

设计模式(策略,观察者,单例,工厂方法)

文章目录1. 设计模式核心概念与C语言实现基础2. 常用设计模式详解模式一:策略模式(Strategy Pattern)模式二:观察者模式(Observer Pattern)模式三:单例模式(Singleton Pattern&#…

terraform入门

一、概念 1、Terraform 的“基础设施即代码”是什么 基础设施即代码 (IaC) 工具允许您使用配置文件而非图形用户界面来管理基础设施。通过定义可版本控制、可重用和可共享的资源配置,IaC 允许您以安全、一致且可重复的方式构建、更改和管理您的基础设施。 Terraform…

ARM 体系结构与存储器

一、RAM 分类SRAM (Static RAM)用 触发器/晶体管 存储 0/1。特点:速度快、功耗低(静态保持),但成本高、容量小。应用:片上缓存、寄存器文件、单片机内存。DRAM (Dynamic RAM)用 电容充放电 存储 0/1。特点:…

Jenkins运维之路(初识流水线)

1.初次使用流水线前面我们用自由风格的流水线进行了项目部署,但是自由风格的流水线只能应付一些简单且项目规模不是很大的部署。为了让流水线能够灵活、通用、逻辑清晰且更加容易维护,现在一般企业都是采取使用了Pipeline的方式来对流水线进行构建&#…

【智能协同云图库】基于统一接口架构构建多维度分析功能、结合 ECharts 可视化与权限校验实现用户 / 管理员图库统计、通过 SQL 优化与流式处理提升数据

摘要:本节围绕提升空间图库管理分析能力,先分用户与管理员两类梳理资源使用、分类、标签等 6 大分析需求,再设计统一实现流程与接口方案,最后通过分层开发完成各需求后端功能,覆盖权限校验、数据处理与接口编写。 本节…

HTML第八课:HTML4和HTML5的区别

HTML第八课&#xff1a;HTML4和HTML5的区别html4 与 html 5的区别快速学习平台html4 与 html 5的区别 示例图 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> &…

CS336——1. Overview

文章目录1. CS336介绍2. 概览2.1 为什么会有这门课程2.1.1 LLM的参数和训练成本2.2.2 小语言模型和LLM的区别2.2 你可以学到什么&#xff1f;2.2.1 Intuitions2.2.2 The bitter lesson3. 全景图(current landscape)/发展历史4. 可执行的课件说明5. 课程设计6. 课程内容6. 1 bas…

ncnn-Android-mediapipe_hand 踩坑部署实录

目录 同时有 nanodet 和yolox,可以做到10fps 没测试:yolox hand ncnn-Android-mediapipe_hand hand 关键点21个模型: ncnn版本: 跑通后,手部关键点集中在图像左上角,经过排查,原因是ncnn版本不对。 CMakeLists.txt 同时有 nanodet 和yolox,可以做到10fps 无训练…

OSPF实验:外部路由引入

OSPF外部路由引入实验目的&#xff1a;除了内部通信外&#xff0c;企业还需要与外部网络进行通信&#xff0c;不同企业网络之间存在互访需求。假设A公司网络部署OSPF协议实现内部通信&#xff0c;因业务发展&#xff0c;需要访问B公司的一台WEB服务器。网络拓扑图&#xff1a;公…

网络上那些在线 PDF 转换工具安全吗?转换 PDF 需要注意什么

PDF 格式凭借跨设备兼容、格式稳定的优势&#xff0c;早已成为个人办公、企业协作中不可或缺的文件格式。无论是压缩 PDF 以满足邮件附件大小限制&#xff0c;还是将 Word 文档转成 PDF 确保排版不变&#xff0c;我们总能遇到需要 PDF 工具的场景。也正因如此&#xff0c;网上涌…

生成对抗网络(GAN)

目录 1 引言 2 生成对抗网络的基本原理 2.1 生成器与判别器 2.2 对抗训练过程 2.3 与传统生成模型的比较 3 GAN的衍生模型 3.1 架构创新与深度卷积GAN 3.2 损失函数优化与Wasserstein GAN 3.3 条件生成与可控合成 3.4 跨域转换与CycleGAN 3.5 高分辨率生成与规模化演…

Vue 3.6 Alien Signals:让响应式性能飞跃式提升

概述 Vue 3.6 引入了革命性的 Alien Signals 技术&#xff0c;这是一种全新的响应式系统&#xff0c;基于细粒度响应式原理&#xff0c;为 Vue 应用带来了前所未有的性能提升和开发体验优化。 什么是 Alien Signals&#xff1f; Alien Signals 是 Vue 3.6 内置的轻量级响应式…

React Hooks 报错?一招解决useState问题

文章目录问题分析问题 在使用import { useState } from "react";时报错&#xff1a;Youre importing a component that needs useState. This React Hook only works in a Client Component. To fix, mark the file (or its parent) with the “use client” direct…

数据集成平台怎么选?从ETL到CDC再到iPaaS的全景对比

前言&#xff1a;一个制造企业的真实困境 近期在为某家制造企业做系统改造时&#xff0c;我们遇到了一个典型的数据集成难题。这家企业运营着独立的ERP、CRM和MES等30业务系统&#xff0c;看似完备的信息化基础却存在严重的数据割裂问题。 销售团队在CRM中查看的库存数据总是滞…

驱动开发系列72 - GLSL编译器实现 - 指令选择(二)

前面介绍过,在指令选择时会执行一系列优化过程,本节介绍下“比特级常量传播优化”的实现。 一:什么是比特级常量传播优化 举一个GLSL语言例子: #version 450layout(location = 0) in vec4 inColor; layout(location = 0) out vec4 outColor;void main() {vec4 tmp = inCo…

Redis(缓存)

一 什么是缓存1. 生活上的例子比如有一个行李箱和一个手机&#xff0c;每次把手机放到行李箱在拿出来肯定很麻烦&#xff0c;如果放到裤兜里就会方便很多&#xff0c;所以裤兜算作行李箱的一个缓存&#xff0c;不仅仅是裤兜&#xff0c;甚至可以一直拿在手上等其他有存储介质的…