在我的git repo的历史中,有很多媒体二进制文件被添加到它。现在这些媒体文件已被删除。
但是,我怀疑repo将这些媒体文件的信息存储在repo的存档中,因为我的repo大小是400MB。
我已经阅读了关于git-gc --aggressive
之类的清理命令,但我认为这不允许我直接“忘记”那些旧的媒体文件。
P.S。 - 那些媒体文件实际上是当时SVN回购的一部分,我已经使用git-svn将回购转换为git。
答案 0 :(得分:2)
如果他们是您分支历史记录的一部分,那么git需要存储这些文件的内容,否则您的历史记录将不完整。
完全删除它们的唯一方法是重写这些分支的历史记录,并将它们从添加它们的提交中删除,直到它们被删除。
我最初的建议是不要担心它们。它们现在永远不会改变,因此除了初始克隆和存储库大小之外,它们对当前分支的尖端上的操作不会有任何其他性能影响。
如果您决定重写存储库的历史记录,则可能需要使用--index-filter
或--tree-filter
查看git filter-branch
之类的内容。
请注意,在具有活动工作的当前存储库上构建活动工作的任何人都必须小心地执行适当的rebase操作,否则就有可能在所有旧提交中合并并带回您试图摆脱的对象。