git 删除历史提交中的文件

发布时间 2023-11-09 23:58:15作者: 奇神不神奇

在使用git管理项目的时候,发现项目中的文件中含有隐私的数据信息,而且项目在gitee中管理,这是及其不安全的,即使新的提交删除了隐私文件也会在历史提交中找到。

因此需要从历史中完全删除这个文件

从网上找到的方法:使用git filter-branch

git filter-branch --force --index-filter "git rm --cached --ignore-unmatch xxx/xxx" --prune-empty --tag-name-filter cat -- --all

自己试了一下,发现还是没有去掉历史记录的文件,所以我改成了下面的指令:

git filter-branch --force --tree-filter "git rm -f --ignore-unmatch xxx/xxx" --prune-empty --tag-name-filter cat -- --all

这个指令操作风险很大,在实际操作的时候最好能备份。