我有一个在多个分支的起源处提交的大文件。该文件后来被修改、移动或从分支中删除。问题是该文件对于 GitHub 来说太大了,所以我想从任何地方删除它(它的所有版本)。如何才能做到这一点?
我已经看到了修改包含此类文件的合并的方法(https://stackoverflow.com/a/308684/42973),或者从(显然)单个分支中删除文件的方法(https://stackoverflow. com/a/5563603/42973),但它们不适用于这种情况。
我有一个在多个分支的起源处提交的大文件。该文件后来被修改、移动或从分支中删除。问题是该文件对于 GitHub 来说太大了,所以我想从任何地方删除它(它的所有版本)。如何才能做到这一点?
我已经看到了修改包含此类文件的合并的方法(https://stackoverflow.com/a/308684/42973),或者从(显然)单个分支中删除文件的方法(https://stackoverflow. com/a/5563603/42973),但它们不适用于这种情况。
使用BFG Repo-Cleaner,这是一种更简单、更快的替代方案,git-filter-branch
专门用于从 Git 历史记录中删除不需要的文件。
您应该仔细按照使用说明进行操作,但核心部分是这样的:
$ java -jar bfg.jar --strip-blobs-bigger-than 50M my-repo.git
任何大小超过 50MB 的文件(不在您的最新提交中)都将从您的 Git 存储库的历史记录中删除。
BFG 通常至少比running快10-50 倍git-filter-branch
,并且通常更易于使用。
全面披露:我是 BFG Repo-Cleaner 的作者。