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

使用git-filter-repo 清除大文件

  1. 安装python

    下载 Python
    访问 Python 官网

  2. 安装 git-filter-repo(需提前安装 Python,安装非常简单)
    执行命令: pip install git-filter-repo
  3. 在项目目录下打开命令行
    执行命令: pip install git-filter-repo
    在 .git\filter-repo\analysis./path-all-sizes.txt 查看大文件

    image

     有日期的是当前文件中已被git删除过(不代表历史记录里没有),present是未被删除的

  4. 删除文件

    执行命令:git filter-repo --path '你要删除的文件路径(路径最好从上面报告内容中复制)' --invert-paths

    数说明

    • --path:指定要删除的目录路径
    • --invert-paths:反转匹配,即删除匹配的路径,保留未匹配的路径

    --path 参数说明

    • 比如从上述例子中可以看出占用空间最大的是 dist/main.exe文件,但是这个文件现在不用了,所以我们需要删掉。
      删除历史中所有名为 dist/main.exe 的文件:
      git filter-repo --path dist/main.exe --invert-paths

    • 删除以后会发现可能还有dist/main.exe的文件也需要删除,这时候就可以 使用通配符删除,native/* 表示删除native/下所有文件:
      git filter-repo --path-glob dist/* --invert-paths

    • 也可直接删除native文件夹及内部文件的资源和历史记录:
      git filter-repo --path dist/ --invert-paths

    • 清理多个文件可多次执行此命令以后再执行后续命令

    需要拷贝仓库操作,如果要强制带上 --force
  5. 使所有引用日志(reflog)立即过期(以便后续的垃圾回收可以清理这些日志)
    执行命令:git reflog expire --expire=now --all

    参数说明:

    • --expire=now:将所有引用日志标记为立即过期
    • --all:对所有引用(分支、标签等)生效
  6. 执行垃圾回收,清理未使用的对象并优化仓库

    执行命令:git gc --aggressive --prune=now

    参数说明:

    • --aggressive:执行更彻底的优化(耗时较长)
    • --prune=now:立即清理所有过期的对象
  7. 推送到远程
    强制将本地仓库的分支推送到远程,覆盖远程仓库分支的历史记录:
    git push --force origin --all
    强制将本地仓库的tag推送到远程,覆盖远程仓库tag的历史记录
    git push --force origin --tags

 

 

 

http://www.gsyq.cn/news/21301.html

相关文章:

  • C# 23种设计模式详解与示例 - 详解
  • 2025年最新销售管理系统使用指南:顶级销售是如何使用CRM系统? - SaaS软件
  • 2025 年激光焊锡源头厂家最新推荐排行榜:覆盖多行业需求,助力企业精准选优质设备供应商手机摄像头/线材类/通讯行业/FPC柔性线路板激光焊锡厂家推荐
  • 【光照】UnityURP中的[HDR贴图]
  • ​​电压探头的应用场景与技术选型指南​​
  • 基于Java+Springboot+Vue开发的体育用品购物销售商城管理系统源码+运行步骤
  • AI Agent 产品推荐方案
  • 二层环路检测
  • 2025年国内搅拌釜优质厂家排行榜:值得推荐的搅拌釜厂家有哪些?
  • 校验码编码
  • 音频标签,无语义的布局标签,字符实体(尖括号和空格)
  • 如何禁用键盘左侧Win键
  • 【日记】央视不要我,笑死(1672 字)
  • 瑜伽馆会员约课小程序页面功能梳理 - 教程
  • 2025-10-14
  • MySQL笔记---表的约束 - 实践
  • 深入解析:Atlas Mapper 教程系列 (8/10):性能优化与最佳实践
  • 新买的笔记本电脑如何将旧笔记本数据迁移完整迁移克隆过来?买了新电脑,旧电脑大量数据如何迁移?
  • Markdown 是一种「用肉眼就能看懂」标记语言
  • 详细介绍:如何在 Apache 中启用 HSTS 以增强网络安全性 ?
  • Java 与智慧环保:生态监测与低碳治理
  • VMware ESXi 9.0.1.0 macOS Unlocker OEM BIOS 2.7 Huawei 华为 定制版
  • VMware ESXi 9.0.1.0 macOS Unlocker OEM BIOS 2.7 xFusion 超聚变 定制版
  • 【GitHub每日速递 251015】爆火, 20k star!小智 AI 聊天机器人多端控制+70 多个开源硬件支持,大模型应用新玩法
  • 另一个角度看运放
  • 何时无需AI:数学与统计的实用价值
  • windows7 定制更新后运行多久?
  • 乐理 -07 五线谱
  • CentOS 7.6 环境下基于 Docker 部署 PaddleOCR 源码的实践指南
  • 精确率