首页/开发/Git 与协作速查/git repack 手动重打包
进阶与大仓实践69 条

git repack 手动重打包

把松散对象与多个包合并为更少、更紧凑的包;常用 -a -d -b 组合(全量、删除冗余、写位图),大仓可改用 maintenance 的增量重打包。

Git 与协作速查开发更新于 2026-10-12
-a -d全量重打包并删除冗余包
-b写 bitmap 索引(配合服务端取回)
-f重算 delta,耗时更长,谨慎使用

常用示例

常用示例
git repack -adb
git count-objects -vH
git repack -Ad --quiet
重打包是重活:对几十 GB 仓库先在低峰期试跑并观察磁盘余量。

易错点

  • -f 全量重算 delta 在大仓上可能跑很久,非必要不加
  • 重打包期间并发写入(他人推送)可能触发自动 gc,维护窗口要协调

数据来源与参考

  • Git 官方文档:git-repack
  • Git 官方文档:git-count-objects
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌