【笔记】在Git中删除指定文件并删除其所有相关的提交记录

前言

在Git中删除指定文件并删除其所有相关的提交记录,以实现脱敏
此操作不会删除其他文件及提交记录
在操作前应提前将被删除的文件备份,提交记录被删除后,如果需要保留文件,可以将备份的文件再重新提交

正文

config/config.json:需要删除的文件

1
2
3
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch config/config.json" --prune-empty --tag-name-filter cat -- --all
git reflog expire --expire=now --all
git gc --prune=now --aggressive

完成

参考文献

CSDN——桑榆肖物