为什么赢了’;git是否进一步减少了存储库的大小?

为什么赢了’;git是否进一步减少了存储库的大小?,git,garbage-collection,Git,Garbage Collection,我有一个只有一个提交的存储库,其签出大小为95M。但是,我无法使.git文件夹大小低于213M。但是,如果我用相同的文件内容创建一个新的存储库,我会得到一个只有38M的.git文件夹 git有没有办法通过创建新的存储库来重建其对象,从而使其大小更符合图中所示 我尝试了git-gc--prune=now--aggressive和git-repack-adf--window=250--depth=250来减小存储库的大小。他们把仓库从原来的220米降下来 我想git一定在某个地方保存了一个引用,以防

我有一个只有一个提交的存储库,其签出大小为95M。但是,我无法使.git文件夹大小低于213M。但是,如果我用相同的文件内容创建一个新的存储库,我会得到一个只有38M的.git文件夹

git有没有办法通过创建新的存储库来重建其对象,从而使其大小更符合图中所示

我尝试了
git-gc--prune=now--aggressive
git-repack-adf--window=250--depth=250
来减小存储库的大小。他们把仓库从原来的220米降下来

我想git一定在某个地方保存了一个引用,以防止垃圾收集,但我不知道它们会在哪里。我已删除所有遥控器和分支,在“refs”下除了我当前的分支之外,我看不到任何其他内容

$ ls -R .git/refs
.git/refs/:
heads  tags

.git/refs/heads:
master

.git/refs/tags:
我从一个历史较长的现有存储库创建了存储库。我使用
checkout--orphan
创建了一个新的无基础分支,然后执行了一次提交,创建了一个具有存储库状态的新提交。然后,在运行
gc
之前,我删除了原始分支并删除了远程设备

$ git --version
git version 1.9.4.msysgit.0
运行:

git reflog expire --all --expire=now
git gc --prune=now --aggressive
将文件夹缩小到27米。感谢@torek的评论,建议清理reflog


我认为reflog不是问题,因为如果我运行
git reflog
我只看到一个条目,即我的单次提交。为了回应@torek的建议,我找到了清除reflog命令的地方。

清除reflog,这可能是隐藏东西的地方。可能是@AndrewC的重复,这就是我尝试使用的地方,也是我获得上述
gc
命令的地方,但当时它没有提到reflog。我在标记它后意识到它是一个循环引用。哎呀。你可能认为它会在某个地方,但是堆栈溢出搜索太可怕了。不用担心。关于这一点,最重要的部分是这个问题的答案现在已经更新,这应该会阻止更多的人体验到这一点。