我的存储库只有一个提交,其签出大小为95M。但是,我无法使213M以下的.git文件夹大小。但是,如果创建具有相同文件内容的新存储库,则会得到只有38M的.git文件夹。
有没有一种方法来git重建其对象,从而使大小与创建新存储库时的图更一致?
我尝试了两者git gc --prune=now --aggressive
并git repack -adf --window=250 --depth=250
减小了存储库的大小。他们将存储库从原始的220M删除了。
我想象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
使文件夹减小到27M。感谢@torek提供的建议,建议您清洁reflog!
我以为刷新日志不是问题,因为如果运行,git reflog
我只会看到一个条目,这就是我的单次提交。响应@torek的建议,我发现了如何从git存储库中删除未使用的对象?这是我找到用于清除reflog的命令的地方。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句