gpt4 book ai didi

git - 如何在 filter-branch --subdirectory-filter 之后从我的 repo 中删除不需要的对象

转载 作者:太空狗 更新时间:2023-10-29 12:52:00 25 4
gpt4 key购买 nike

我正在使用

git filter-branch --subdirectory-filter dir/name -- --all

构建一个仅具有与该目录/名称相关的历史记录的存储库。在执行过滤器之前,我将原始存储库(它大得多)克隆到一个 tmp 目录中。在 filter-branch 之后,repo 看起来就像我想要的那样,有一个异常(exception):它似乎仍然包含原始 repo 中的所有对象,即使它们没有显示在“git log”中。

我怎样才能完全删除所有那些不需要的对象?

我试过这样的事情:

git reflog expire --expire=now --all
git gc --aggressive --prune=now

我很清楚,我不知道为什么它们还在那里,也不知道删除它们意味着什么,但我确实愿意。一些可能对我不利的相关信息是我不久前在我的源代码库上做了一个 git repack -a,它似乎将该包文件复制到新的代码库。看来我仍然可以做我想做的事。

最佳答案

filter-branch 还在 .git/refs/original 中保留了备份引用,你也必须在 gc 之前删除它

关于git - 如何在 filter-branch --subdirectory-filter 之后从我的 repo 中删除不需要的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/709433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com