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

为何小提交会导致Git裸仓库(bare repo)体积翻倍?

为什么小提交让Git裸仓库体积翻倍?

Git的核心存储逻辑是保存文件快照而非变更差异,但会通过压缩和增量(delta)优化来缩减体积。你的仓库体积翻倍,核心原因和大文件的存储特性有关:

  • 初始推送的压缩效果:你推送的300MB未压缩文件,Git通过无损压缩(类似Zip算法)将其压缩至57MB,这是Git常规的压缩能力体现。
  • 二进制文件的增量压缩失效:你修改的900K二进制文件,Git对这类文件的增量压缩效果极差——二进制文件的微小改动往往会导致大部分字节变化,Git无法生成有效的差异增量,只能保存完整的新版本文件快照。如果这个900K文件是你之前300MB文件集合中占压缩体积极高的核心文件,那新版本完整存储后,加上原版本的压缩体积,总大小就会接近翻倍。
  • 未触发垃圾回收(GC):裸仓库不会自动执行git gc,推送新分支后,Git会同时保留旧对象和新对象。如果新提交的对象未与旧对象合并打包,两个独立的打包文件叠加就会让体积翻倍。你可以在裸仓库目录下执行git gc --aggressive,GC会合并打包文件、复用共享对象、删除冗余数据,体积大概率会回落。

另外,也可以用git diff master dev_branch --stat查看两个分支的差异文件大小,确认是否存在误修改大文件的情况——如果不小心覆盖了原来的300MB大文件,Git会生成该文件的完整新版本,直接导致仓库体积翻倍。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:52:44