git移除历史提交中的敏感信息文件

背景

  git历史提交中,如果不小心commit了敏感信息文件,就需要从所有的历史提交中移除,以免提交到github等地方时,造成信息泄露。

解决方案

  使用bfg命令,可以便捷的删除历史提交中的敏感信息文件。bfg在参考链接[2]下载,需要java执行环境。本次下载的文件为bfg-1.14.0.jar,将文件移动到/usr/local/lib下,并创建软链接sudo ln -s /usr/local/lib/bfg-1.14.0.jar /usr/local/lib/bfg.jar,之后在~/.bashrc文件里添加别名alias bfg='java -jar /usr/local/lib/bfg.jar'
  使用参考链接[1]提供的方式bfg --delete-files YOUR-FILE-WITH-SENSITIVE-DATA,移除的敏感文件会出现在最后一个commit里面,根据参考链接[2],需要加上--no-blob-protection,才能在最后一个提交中,把敏感文件也移除掉。最终完整的命令为

1
bfg --no-blob-protection --delete-files YOUR-FILE-WITH-SENSITIVE-DATA

参考链接