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
尝试使用多个路径(在一个命令中删除所有文件),然后强制推送。
我有几个文件太大,无法提交到 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
尝试使用多个路径(在一个命令中删除所有文件),然后强制推送。