Git 巨大失误案例记录 (2026-05-01)

Git 巨大失误案例记录 (2026-05-01)

事故概述

清理 Git 仓库大文件时,使用git filter-branch` 操作失误。


事故经过

第1步:发现问题

  • 远程仓库 大小超过 1024MB
  • 本地仓库大小:127.22 MiB
  • 最大文件:uite_Setup.exe (54.41 MB)

第2步:尝试清理

bash 复制代码
git verify-pack -v .git\objects\pack\*.idx
git rev-list --objects --all | sort -k 3 -n -r | head -20

第3步:使用 filter-branch 重写历史

bash 复制代码
git filter-branch --force --index-filter "git rm -r --cached --ignore-unmatch te_Setup.exe Out/ setup/ Plugins/" --prune-empty --tag-name-filter cat -- --all

第4步:删除备份引用(错误!)

bash 复制代码
git update-ref -d refs/original/refs/heads/master
git update-ref -d refs/original/refs/remotes/origin/master

第5步:执行 GC

bash 复制代码
git reflog expire --expire=now --all
git gc --prune=now --aggressive

第6步:尝试推送(失败)

bash 复制代码
git push -f origin master

失败原因:远程仓库还有旧的大对象未清理,超过 Gitee 1024MB 限制


清理前后对比

项目 清理前 清理后
Git 仓库大小 127.22 MiB 1.21 MiB
Git 对象数 974 498
最大文件 ite_Setup.exe (54.41 MB) g.doc (0.29 MB)
大文件已从历史中删除 setup/ (22个文件 已删除
Plugins/ (48个文件 已删除
Out/ (374个文件 已删除

⚠️ 教训总结

✅ 正确做法

  1. 先备份!

    bash 复制代码
    # 备份整个 .git 目录
    xcopy .git .git-backup /E /I /H /Y
  2. 使用 BFG Repo-Cleaner!

    bash 复制代码
    # 下载 BFG(比 filter-branch 更安全、更快
    java -jar bfg.jar --delete-files uite_Setup.exe
  3. 不要删除备份引用!

    • `refs/original/ 是 filter-branch 的安全网,后悔还可以恢复
  4. 远程仓库先 GC!

    • Gitee 上执行 GC 清理历史对象
    • 再强制推送

❌ 错误做法

  1. 不要直接删除 refs/original/
  2. 不要没有备份就操作
  3. 不要忽略远程仓库没清理就推送
  4. 不要用 git rm 不带 --cached(虽然这次带了,但用户担心)

教训文档

  • [v2-remaining-work-plan.md
  • [yeb-v2-code-review-plan.md
  • [code-review-report-plan.md
相关推荐
ACP广源盛1392462567326 分钟前
蚂蚁百灵 Ling‑3.0‑flash 开源 + 昇腾 0‑Day 原生适配@ACP#GSV9001E 在国产算力矩阵中的机会与落地场景
大数据·人工智能·分布式·单片机·嵌入式硬件
微三云-张梅2 小时前
东莞企业做GEO:AI信任体系的三个建设层级
大数据·人工智能·微三云geo·东莞系统开发·东莞geo
starzy19902 小时前
Spark 核心之 Spark-SortShuffle 原理深度剖析
大数据·spark
Elasticsearch3 小时前
什么是混合搜索?
elasticsearch
美狐美颜sdk4 小时前
直播APP开发技术架构解析:从音视频流到第三方美颜SDK接入的完整方案
大数据·人工智能·音视频·美颜sdk·美颜api
Capricorn19885 小时前
知芽研究问题看板无法推进?从孵化区到笔记的机制排查指南
大数据·论文阅读·人工智能·笔记·学习方法·论文笔记
凡科网小帆5 小时前
2026小程序商城平台哪家强,小程序商城平台选型怎么做
大数据·小程序·小程序商城平台
睿本云5 小时前
从“有数据”到“会用数据”,一次标签体系的升级能带来的改变
大数据·人工智能
牛奶咖啡135 小时前
大数据Hadoop运维应用实践——Hadoop平台常见问题与故障汇总、系统调优、网络规划与硬件存储选型
大数据·hadoop·hadoop集群操作系统调优·hadoop集群运维问题汇总·hadoop集群硬件规划·大数据平台网络规划·大数据平台硬件存储选型
Jeanyia5 小时前
GitLab 配套 Git 常用命令
git·gitlab