git gc

Administration

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]
[ ] facultatif| ou<arg> valeur à remplacer... répétable--flag option

Exemples

Ranger

git gc

Empaqueter et nettoyer.


Supprimer les objets inaccessibles maintenant

git gc --prune=now

Supprime aussi immédiatement les commits perdus (attention).

Exemples de workflows

1
git reflog expire --expire=now --all

Oublier les anciennes positions

2
git gc --prune=now --aggressive

Supprimer 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

A:

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.