加载中...
BFG Repo-Cleaner 是一款清理 Git 历史的工具,专门用于快速删除误提交的大文件和敏感信息(如密码、密钥)。相比原生的 git filter-branch,它速度快出十倍以上且用法简单,是仓库瘦身与泄密补救的常用利器。

| 类型 | Git 历史清理工具 |
| 开发者 | Roberto Tyley |
| 实现语言 | Scala |
| 底层 | JGit |
| 许可证 | GPL |
BFG Repo-Cleaner是一款用于清理 Git 仓库历史的开源工具,专注于从所有历史提交中彻底删除大体积文件或敏感数据。它以简单和高速著称,是 git filter-branch 的更快替代方案。
开发者常会不慎把数据库转储、编译产物等大文件,或密码、私钥、令牌等机密信息提交进 Git。由于 Git 会永久保留历史,单纯删除文件并再次提交无法真正抹除,内容仍潜伏在旧提交中。BFG 由 Roberto Tyley 开发,用 Scala 编写,基于 JGit 实现,以 GPL 许可证开源,名字取自游戏中威力巨大的武器,寓意其清理历史的强力。
当仓库因历史大文件而膨胀时,可用 BFG 一次性剔除超过指定大小的文件,大幅缩减体积。当密钥意外泄露进历史时,BFG 能批量把敏感字符串替换掉,配合立即轮换密钥完成补救。企业迁移或开源某内部仓库前,也常用它清洗历史中的机密与冗余数据。
问:用 BFG 清理后为何还要强制推送并通知协作者?答:清理会改写历史、生成全新的提交哈希,必须强制推送,且所有协作者都需重新克隆,否则旧历史会被再次带回。
问:泄露的密钥用 BFG 抹掉就安全了吗?答:不安全。一旦推送到公开或多人仓库,密钥应视为已泄露,必须立即作废并更换,历史清理只是收尾。

| 类型 | Git 历史清理工具 |
| 开发者 | Roberto Tyley |
| 实现语言 | Scala |
| 底层 | JGit |
| 许可证 | GPL |
登录 后参与讨论
暂无讨论,来发表第一条评论吧