Git的打包存储格式,将大量松散对象压缩合并为少数大文件,支持delta编码与zlib压缩,配以.idx索引文件实现高效对象定位,是Git存储优化的核心机制
Packfile由.pack文件和对应的.idx索引文件组成,.idx文件允许通过SHA-1哈希值实现O(log n)级别的查找效率
Git在初始存储时为每个变更的文件创建完整的Blob对象(经过zlib压缩),称为松散对象(loose objects),真正的Delta压缩发生在Packfile打包阶段
Packfile的触发条件包括:松散对象数量超过约6700个、执行git push时、或手动运行git gc时