为什么git不能进一步减小存储库的大小?

vossad01

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

有没有一种方法来git重建其对象,从而使大小与创建新存储库时的图更一致?

我尝试了两者git gc --prune=now --aggressivegit 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
vossad01

运行:

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

使文件夹减小到27M。感谢@torek提供的建议,建议您清洁reflog!

我以为刷新日志不是问题,因为如果运行,git reflog我只会看到一个条目,这就是我的单次提交。响应@torek的建议,我发现了如何从git存储库中删除未使用的对象?这是我找到用于清除reflog的命令的地方。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么并行处理不能进一步加快速度?

与SSE2相比,AVX为什么不能进一步提高性能?

为什么包含需要进一步的依赖?

角色名称存储在哪里以及它的进一步用途是什么?

为什么按住鼠标按钮输入元素会干扰进一步的鼠标事件?

为什么在继续之后;执行进一步的功能代码被执行?

为什么 VecDeque is_empty 会阻止进一步借用?

什么是迭代器的“进一步过滤”?

进一步的点击会发生什么

我怎么能进一步优化此查询?

进一步过滤聚合

进一步解释 keyExtractor

Kotlin-Firebase-不能在代码中进一步使用从数据库读取的字符串

我如何进一步理解为什么Go会以这种方式处理错误?

来自具有多个功能的集合的结果不可用于进一步的计算。为什么?

为什么调用indexedDB.deleteDatabase阻止我进行任何进一步的事务?

Elixir:集成测试误报,为什么会失败以及如何防止进一步的误报?

在Java中使用Jess规则:断言的实例不能用于进一步的推理

可能进一步优化〜20M记录表的`inet'列上的“位图索引扫描”

在使用golang时,是否建议(进一步)限制表单的大小?

如何进一步优化Webpack捆绑包大小

在哪里存储两个值以进行进一步比较?

从边缘图像中提取成分并存储以进行进一步处理

存储 xmlhttp 响应以供进一步使用

从 REST API 获取并存储 json 响应以进一步过滤数据

存储Java对象以在使用REST的WebApp中进一步使用

在 jQuery 中,是否可以存储通配符以在函数中进一步使用?

如何存储MySQLi bind_result值以进行进一步处理?

尝试存储变量的多个副本以进一步用于计算