首页/开发/Git 与协作速查/仓库体积治理清单
进阶与大仓实践69 条

仓库体积治理清单

体积治理按「定位 → 归因 → 治理 → 防复发」推进:先找大对象,再决定迁 LFS、移出历史或改为制品管理,最后用规范与检查防止复发。

Git 与协作速查开发更新于 2026-10-13

体积治理的四个阶段

仓库体积治理按「定位、归因、治理、防复发」推进:先找出体积在哪里,再判断为什么会有,然后选择迁移大文件存储、从历史中移除或改由制品库分发,最后用忽略规则与提交前检查防止复发。体积问题通常需要多轮才能收敛,指望一次处理到底并不现实。

基本信息

定位用对象统计与包校验找出大对象
归因素材、构建产物、依赖缓存、历史误提交
治理迁移大文件存储、历史移除、制品库分流
防复发忽略规则、提交前体积检查、评审清单
执行方式先在副本上验证,再对主仓库执行

典型使用场景

  • 克隆速度明显下降,需要找出体积来源
  • 新人入职或流水线频繁拉取,体积成本被放大
  • 历史中误提交过大型二进制文件
  • 素材或模型文件需要纳入版本化管理
  • 制定防止复发的规范与检查点

治理命令组合

治理命令组合
git count-objects -vH                                              # 先看体积构成
git verify-pack -v .git/objects/pack/*.idx | sort -k3 -n | tail -10  # 找出最大的对象
git rev-list --objects --all | head -20                              # 浏览对象与路径的对应
git lfs migrate info --everything                                    # 统计可迁移的大文件类型

治理路线

目标手段适用情形
保留但外置迁移到大文件存储素材与二进制仍需要版本化
彻底移除重写历史删除文件误提交且确实不需要保留
分流改用制品库分发构建产物与依赖缓存
防复发忽略规则与提交前检查所有仓库都建议配置
每次治理之后先在副本上验证克隆与构建,再对主仓库执行;体积问题往往需要多轮才能收敛,别指望一次到位。
从当前分支删除文件不会减小体积,历史里的那份对象依然存在。要真正瘦身必须处理历史,并通知所有协作者重新克隆或同步。

易错点

  • 只清当前分支而忽略历史版本,体积几乎不会下降
  • 把构建产物上传到发布附件之前,先确认其中不含敏感配置或凭据
  • 重写历史必须协调所有协作者,否则旧的克隆会在推送时把大对象带回来
  • 迁移大文件存储之前没有在副本上验证,直接在主仓库操作可能造成不可逆的损失

数据来源与参考

  • Git 官方文档:git-count-objects / git-verify-pack
  • GitHub Docs:About large files on GitHub
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌