Git删除历史文件

00 前言

对于历史提交敏感文件(包含了密码), 或者不小心提交了大文件
有两个办法进行处理:

  1. 使用filter-branch
  2. 使用BFG

或者删除分支/仓库 也可以

第一种方法过于复杂, 这里推荐第二种

01 文档

首先上来就是官方文档
这里再提一句: 阅读官方文档的能力很重要
这也是我以后需要加强的地方, 不管是中英文档

然后上来就是中文文档

02 使用

参考文档就行, 这里就把执行过的命令copy一下

1
2
3
4
5
6
7
git clone --mirror xxx.git  # 这里使用mirror

java -jar xxx\bfg.jar --delete-folders 文档收集 --delete-files 文档收集 --no-blob-protection xxx.git # 这里删除了文件夹

git reflog expire --expire=now --all && git gc --prune=now --aggressive # 这里整理空间

git push # 推送, 记得关闭仓库保护

需要注意的无非就是mirror, 删除命令和push的时候需要关闭保护
mirror应该无影响(未测)
删除命令可更改(看需求)
push需要关闭保护

03 后记

遇到这些棘手问题, 一般都是解决了就懒得写文档了
要强迫一下自己养成记录的文档才行了


-------------本文结束  感谢您的阅读-------------