【发布时间】:2010-10-17 02:28:36
【问题描述】:
我正在使用
git filter-branch --subdirectory-filter dir/name -- --all
构建一个仅具有与该目录/名称相关的历史记录的存储库。在进行过滤之前,我将原始存储库(非常大)克隆到 tmp 目录中。在过滤器分支之后,repo 看起来就像我想要的那样,除了一个例外:它似乎仍然包含原始 repo 中的所有对象,即使它们没有显示在“git log”中。
我怎样才能完全删除所有那些不需要的对象?
我尝试过类似的方法:
git reflog expire --expire=now --all
git gc --aggressive --prune=now
我很清楚,我不知道为什么它们仍然存在,也不知道删除它们意味着什么,但我肯定愿意这样做。一些可能对我不利的相关信息是,我不久前在我的源代码库上做了一个 git repack -a ,它似乎将该包文件复制到新的代码库中。看来我应该仍然可以做我想做的事。
【问题讨论】:
标签: git