Git:从历史记录中删除除一位作者以外的文件夹

Git: remove folder from history except for one author

如何从历史记录中的每个提交中删除一个文件夹,但特定作者的提交除外?

示例: 作者 AB 都修改了文件夹 app/。我需要删除(在历史记录中)B 对文件夹的所有贡献,而不是 A 的贡献。

您可以使用 git filter-branch 或 BFG

git filter-branch

https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History

git filter-branch --commit-filter '
    if [ "$GIT_COMMITTER_NAME" = "<commiter A>" ];
    then
            // remove any required data and re-commit it again
            git commit-tree "$@";
    else
            git commit-tree "$@";
    fi' HEAD `

BFG

https://rtyley.github.io/bfg-repo-cleaner/