Git 彻底清除历史记录

适用场景

  • 误提交密码、密钥、token 等敏感信息

  • 误提交大文件导致仓库臃肿

  • 需要从所有历史提交中移除某些文件

方法一:git filter-repo(推荐)

安装

pip install git-filter-repo

删除指定文件/目录(从所有历史中移除)

git filter-repo --path .env --invert-paths

git filter-repo --path secrets/ --invert-paths

删除多个路径

git filter-repo --path .env --path config/secrets.json --invert-paths

方法二:BFG Repo-Cleaner

下载 bfg.jar(需要 Java)

https://rtyley.github.io/bfg-repo-cleaner/

删除文件

java -jar bfg.jar --delete-files .env

删除目录

java -jar bfg.jar --delete-folders .idea

替换敏感文本(如密码)

echo "mypassword123" > passwords.txt

java -jar bfg.jar --replace-text passwords.txt

清理并强制推送

git reflog expire --expire=now --all

git gc --prune=now --aggressive

git push --force

方法三:git filter-branch(旧方法,较慢)

git filter-branch --force --index-filter \

'git rm --cached --ignore-unmatch .env' \

--prune-empty --tag-name-filter cat -- --all

清理

git reflog expire --expire=now --all

git gc --prune=now --aggressive

推送到远程

强制推送(会覆盖远程历史)

git push origin --force --all

git push origin --force --tags

注意事项

| 事项 | 说明 |

|--------------|-------------------------------------------------------|

| 备份 | 操作前务必备份仓库 |

| 协作影响 | 所有协作者需重新 clone 或 git pull --rebase |

| GitHub 缓存 | 联系 GitHub 支持清除缓存,否则旧提交仍可通过 SHA 访问 |

| 已泄露的密钥 | 立即轮换,重写历史不能撤回已泄露的信息 |

工具对比

| 工具 | 速度 | 易用性 | 推荐场景 |

|-------------------|------|--------|----------------|

| git filter-repo | 快 | 简单 | 首选方案 |

| BFG | 快 | 简单 | 替换敏感文本 |

| git filter-branch | 慢 | 复杂 | 不推荐,已废弃 |

相关推荐
MuMuMu122313 分钟前
工业园区 VOCs 绿岛集中治理:越华环保集团项目技术方案与工程实践
大数据·运维
品牌测评31 分钟前
大模型推理算力平台推荐分享|六家平台计费与架构拆解
大数据·人工智能·架构
LedgerNinja37 分钟前
WEEX 真实情况如何?交易平台如何判断是否可靠
大数据·人工智能·区块链
微三云 - 廖会灵 (私域系统开发)42 分钟前
智慧社区运营破局:“消费返物业费” 模式的数字化架构与落地实践
大数据·架构
Elasticsearch2 小时前
深入浅出 Elastic 工作流(Workflows):核心架构与十一大顶级字段详解
elasticsearch
Databuff2 小时前
workbuddy能不能私有化部署
大数据·人工智能·开源软件
自由能燃气设备3 小时前
燃气容积式热水器厂家选购指南:2026年商用热水设备采购避坑手册
大数据·数据库·数据仓库·人工智能
ApacheSeaTunnel3 小时前
从 60万行/秒说起,看 SeaTunnel Zeta 基准测试如何做到”测得准“
大数据·数据集成·基准测试·seatunnel·数据同步
2601_963869954 小时前
【计算机毕业设计】基于Java的线上就医平台设计与实现
大数据·人工智能·课程设计
Elasticsearch4 小时前
在 Elasticsearch 中构建上下文:AI Indices 如何使用更少的 tokens 为更智能的 agent 提供支持
elasticsearch