On me demande parfois comment nettoyer un dépôt Git devenu un peu trop lourd avec le temps. Deux commandes existent : git gc et git prune. Elles n’ont pas tout à fait le même rôle.
git prune supprime les objets devenus orphelins. C’est radical : une fois parti, c’est parti. Si vous comptiez restaurer un ancien commit via reflog ou un reset, trop tard.
git gc (garbage collection) est plus complet. Il réorganise, compresse, et appelle un prune plus contrôlé. C’est la commande à privilégier dans la majorité des cas.
Mais attention : aucune de ces commandes ne nettoie l’historique distant, ni ne règle les dépôts pollués par des gros fichiers poussés par erreur. Et il vaut mieux éviter de les utiliser juste après un rebase ou un reset important.
Conseil : git gc --prune=now est le plus sûr pour un vrai ménage local, à condition d’avoir bien vérifié vos branches avant.
Les liens des documentations officielles :
✅ git prune : https://lnkd.in/eYU8mQXm
✅ git gc : https://lnkd.in/eaC-nGzr