比如要删除曾经误提交的 yarn.lock 或 密钥配置等信息,可以这样
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch yarn.lock' --prune-empty --tag-name-filter cat -- --all
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch package-lock.json' --prune-empty --tag-name-filter cat -- --all
如果你要删除的目标不是文件,而是文件夹,那么请在 git rm --cached
命令后面添加 -r 命令,表示递归的删除(子)文件夹和文件夹下的文件,类似于 rm -rf
命令。
参考: