比如要删除曾经误提交的 yarn.lock 或 密钥配置等信息,可以这样

    1. git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch yarn.lock' --prune-empty --tag-name-filter cat -- --all
    2. 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 命令。

    参考: