【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
英文地址,請注明出處:http://en.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;甚至可以一直拿在手上等其他有存儲介質的…