我准备将一些媒体文件提交到git存储库,但后来我停止了因为我被这些文件的巨大文件大小所拖延。这些文件预计将来会过时,所以我想避免使用这些巨大的对象来污染git历史。 那时,我不介意这些媒体文件的历史丢失。
我环顾四周,发现许多使用git-filter-branch
的建议。这个方法需要重写git历史记录,我想避免使用它,因为它需要我团队中其他开发人员的关注。
现在我考虑在主存储库中创建一个包含媒体文件的子模块。然后,每当子模块变得太笨重时,我可以清除历史记录或使用git replace
as described here来减少(新鲜)结账的大小。
这种方法是否合理?如果没有,那么将来有可能从历史记录中删除git对象数据的最佳方法是什么?
我基本上想要的是(由于Git&#39的设计提交完整性而无法实现):
AAAA = 1kb AAAA = 1kb
BBBB = 100MB --> (somehow get rid of BBBB's data)
CCCC = 3kb CCCC = 3kb
= 100MB checkout size = 4kb checkout size