Par Anonyme (non vérifié) , 29 avril 2026

Ce que fait gc

git gc effectue la maintenance : repacke les objets loose, élague les non atteignables au-delà de la fenêtre d'expiration, empaquette les refs loose dans packed-refs, expire les reflogs, et écrit commit-graph et MIDX là où c'est configuré.

Auto-trigger

[gc]
auto = 6700
autoPackLimit = 50
autoDetach = true
pruneExpire = 2.weeks.ago
reflogExpire = 90.days
reflogExpireUnreachable = 30.days

Invocation manuelle

git gc
git gc --auto
git gc --aggressive
git gc --prune=now

Élaguer en sécurité

git reflog expire --expire=now --all
git gc --prune=now

pack-refs

git pack-refs --all
git for-each-ref | wc -l
ls .git/refs/heads | wc -l

Planification en arrière-plan

git maintenance start
git maintenance run --task=gc
git maintenance run --task=loose-objects
git maintenance run --task=pack-refs

Aggressive vs default

--aggressive utilise depth 250, window 250.

Erreurs courantes

Désactiver auto-gc pour "économiser le CPU" et finir avec des millions d'objets loose.