git gc
Nettoyer et optimiser le dépôt
La commande 'git gc' (garbage collection) empaquette les objets libres dans des packfiles compressés, supprime les objets auxquels plus rien ne fait référence (après leur délai de grâce) et range les références et les reflogs. Git en lance automatiquement une version légère ; vous en avez rarement besoin à la main. Elle ne change que le stockage — jamais vos commits, branches ou fichiers.
Synopsis
git gc [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune]Exemples
Ranger
git gcEmpaqueter et nettoyer.
Supprimer les objets inaccessibles maintenant
git gc --prune=nowSupprime aussi immédiatement les commits perdus (attention).
Exemples de workflows
git reflog expire --expire=now --allOublier les anciennes positions
git gc --prune=now --aggressiveSupprimer et réempaqueter
Dépannage
Message "Auto packing the repository…"
Cause : Git a lancé gc automatiquement
Rien à faire ; cela garde le dépôt rapide
Astuces et pièges
Bonnes pratiques
- ✓Laissez Git le lancer automatiquement, ou planifiez git maintenance.
Erreurs fréquentes
- ✗Lancer git gc --prune=now en espérant récupérer un commit perdu — il le supprime.
FAQ
Seulement les objets inaccessibles plus vieux que le délai de grâce (2 semaines par défaut) ; les commits accessibles ne sont jamais touchés.