一个刚毕业就当爹的程序猿 正在迷雾中寻找道路...

如何在Git历史中清理一个文件

近期发布项目的时候发现有一个证书不小心被提交到 git 仓库里了 现在需要清理掉 同时要保留以前的分支记录

git filter-branch

使用 git filter-branch 可以批量操作所有的分支历史

参数选项

  • --tree-filter 表示修改文件列表
  • --msg-filter 表示修改提交信息
  • --prune-empty 表示清理空提交
  • -f 是忽略备份

使用技巧

  • 批量删除文件 git filter-branch --index-filter 'git rm --cached --ignore-unmatch <your-file-name>'