Git 过滤分支多文件重写

Git Filter Branch Multiple File Rewrite

我有几个文件太大,无法提交到 github,现在我不得不使用 git 过滤器分支重写历史记录。

我有大约 4 个超过 100MB 的 csv 文件,我希望将它们从历史记录中删除。我有文件名:story_a002.csv、input_0019.csv、charlet.csv 和 model_892.csv

我知道我可以使用下面的这个命令,但我必须一次使用一个。重写完成后,我必须推送更改;不幸的是,因为我必须先重写所有这些,否则我会遇到文件太大 github 问题。

git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch <filename>

有没有办法将其链接起来,以便我可以重写一次并进行一次推送?

首先,您可以考虑 new git filter-repo, which will replace the old git filter-branch or BFG

many usage examples,包括path-based过滤:

To keep all files except these paths, just add --invert-paths:

git filter-repo --path aFileToRemove --invert-paths

尝试使用多个路径(在一个命令中删除所有文件),然后强制推送。