Accueil·Commandes du terminal

git gc

git

Syntaxe

git gc [--aggressive] [--prune=<date>]

Compacte les objets épars et supprime les inaccessibles pour réduire .git ; --prune=now jette aussi les commits que retenait le reflog, ce qui supprime le filet de sécurité pour annuler un reset.

Options courantes

OptionSignification
--aggressiverepack harder; slow, occasionally worth it
--prune=<date>drop unreachable objects older than that
--prune=nowdrop them all, which also throws away reflog-only commits
--autodo nothing unless there is enough loose junk
--no-prunerepack but keep unreachable objects
-qno progress output

Exemples

git gc

packs loose objects and shrinks .git

git gc --auto

the cheap check git itself runs after some commands

git gc --prune=now --aggressive

smallest result, and no way back to lost commits

Ce qui embrouille, c’est qu’annuler a plusieurs formes : déplacer là où pointe une branche n’est pas ajouter un commit qui l’inverse.

Comment lire

  • Les crochets [ ] marquent une partie facultative.
  • Les points de suspension … signifient qu’on peut en mettre plusieurs.
  • Les options sont sensibles à la casse : sur certaines commandes, -r et -R ne font pas la même chose.

Questions fréquentes

Q. Que fait git gc ?

Compacte les objets épars et supprime les inaccessibles pour réduire .git ; --prune=now jette aussi les commits que retenait le reflog, ce qui supprime le filet de sécurité pour annuler un reset.

Q. Comment l’écrire ?

git gc [--aggressive] [--prune=<date>] — les crochets marquent ce qui est facultatif.

Q. Combien d’options valent la peine ?

Il y en a 6 ici ; la liste complète est dans man git. Cette commande relève de git.

Commandes liées

page man: man git-gc