You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git仓库大小分析:git count-objects中size与size-pack差异解析

Git count-objects 输出项详解(重点解析 size 与 size-pack)

git count-objects -vh 是用来查看Git仓库对象存储细节的命令,下面逐个解释你输出里的每个字段:

  • count: 未被打包的松散对象数量,这里是343个。这类对象是单独存在的文件,还没被Git合并到pack压缩文件中。
  • size: 所有未打包松散对象的总磁盘占用,1.34 MiB。这些单个文件没有经过压缩,所以是原始大小的总和。
  • in-pack: 已经被打包到pack文件中的对象总数,21183个。
  • packs: 当前仓库里的pack压缩文件数量,3个。pack文件是Git用来批量压缩存储对象的容器,会把多个对象合并并压缩。
  • size-pack: 所有pack文件的总磁盘占用,107.51 MiB。pack里的对象不仅会被常规压缩,还会用delta压缩(只存储对象之间的差异内容),所以这个大小远小于所有打包对象的原始大小总和。
  • prune-packable: 可被清理的松散对象数量,16个。这些对象已经被打包到pack文件里了,属于冗余的副本,删除不会影响仓库完整性。
  • garbage: 无引用的垃圾对象数量,0个。这类对象没有被任何分支、标签或提交指向,完全是无用的。
  • size-garbage: 垃圾对象的总大小,0 bytes。

size 与 size-pack 的核心差异

  • size聚焦的是未打包的临时/新增对象,是未压缩的单个文件大小之和,通常是最近操作产生的内容,还没被Git自动打包。
  • size-pack聚焦的是已归档的核心对象,是经过Git高效压缩(含差异压缩)后的总大小,这是仓库占用磁盘空间的主要部分。
  • 两者相加基本就是仓库所有对象的总磁盘占用(忽略少量Git元数据文件)。

如果想优化仓库空间,可以执行 git gc 命令,它会自动把松散对象打包成pack文件,清理可删除的冗余对象,有效减少磁盘占用。

内容的提问来源于stack exchange,提问作者fschn90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 09:07:52