首页/开发/Git 与协作速查/gc 与自动回收参数
进阶与大仓实践69 条

gc 与自动回收参数

git gc 合并包与清理不可达对象;gc.auto 控制自动回收阈值,gc.auto 设为 0 可关闭自动触发,大仓改用 maintenance 计划任务更可控。

Git 与协作速查开发更新于 2026-10-12
手动git gc / git gc --prune=now(谨慎)
关闭自动git config gc.auto 0
清理期限gc.pruneExpire 默认保存两周内的悬空对象

常用配置

常用配置
git config gc.auto 0                 # 交由 maintenance 管理
git config gc.pruneExpire '2.weeks.ago'
git gc --quiet
--prune=now 会立即删除悬空对象,做历史恢复或取证前不要执行;reflog 是重要的安全网。

易错点

  • --aggressive 在大仓上耗时显著且收益有限,官方文档也建议谨慎使用
  • 自动 gc 被关闭后对象只增不减,需确保有替代的维护计划

数据来源与参考

  • Git 官方文档:git-gc
  • Git 官方文档:git-config(gc.auto/gc.pruneExpire)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌