Maintenance et nettoyage des dépôts
Découvrez des commandes comme `git gc` et `git prune` pour nettoyer et optimiser votre dépôt Git local.
Maintenance et nettoyage des dépôts est une leçon Git & GitHub Professional Workflow gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Git & GitHub Professional Workflow, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Git & GitHub Professional Workflow comprend 4 leçons au total.
Bienvenue dans le nettoyage de Git
Au fil du temps, vos dépôts Git locaux peuvent accumuler des fichiers inutiles et devenir moins efficaces. Imaginez une pièce mal rangée !
Dans cette leçon, vous apprendrez à nettoyer et à optimiser vos dépôts Git à l'aide de commandes puissantes comme git gc et git prune. Cela permet à vos projets de fonctionner correctement.
Le stockage des objets de Git expliqué
Commençons par comprendre comment Git stocke les données. Git enregistre l'historique de votre projet sous la forme d'une série d'« objets » :
- Blobs : contenu des fichiers
- Trees : répertoires et leur contenu
- Commits : instantanés de votre projet à un moment donné
- Tags : pointeurs vers des commits précis
Ces objets peuvent être stockés sous forme d'« objets isolés » ou compressés dans des « fichiers pack » pour gagner en efficacité.
Présentation de `git gc` (collecte des objets inutiles)
La commande git gc signifie « garbage collect » (collecter les objets inutiles). C'est l'outil intégré de Git pour nettoyer et optimiser votre dépôt.
Ses principales tâches sont notamment les suivantes :
- Empaqueter les objets isolés : compresser les objets individuels dans des fichiers pack uniques.
- Élaguer les objets inaccessibles : supprimer les objets qui ne sont plus référencés par aucun commit, aucune branche ni aucune étiquette (après un certain délai).
- Supprimer les anciens fichiers pack : éliminer les fichiers d'objets compressés obsolètes.
Ce processus rend votre dépôt plus petit et plus rapide.
Exécuter `git gc` (utilisation courante)
Vous pouvez exécuter git gc manuellement à tout moment. Git l'exécute également automatiquement en arrière-plan lors de certaines opérations, comme l'envoi ou la récupération de données.
Son exécution est généralement sûre, mais il est recommandé de vérifier que vous n'avez pas de travail non validé que vous pourriez devoir récupérer avant un nettoyage important.
Essayez de l'exécuter dans votre terminal :
git gcComprendre la sortie de `git gc`
Lorsque vous exécutez git gc, vous verrez une sortie similaire à celle-ci :
Counting objects: 1234, done.
Compressing objects: 100% (987/987), done.
Writing objects: 100% (1234/1234), done.
Total 1234 (delta 567), reused 0 (delta 0)
Removing duplicate objects: 100% (256/256), done.
Pruning objects: 100% (123/123), done.Cela montre que Git travaille à empaqueter les objets, à écrire de nouveaux fichiers pack et à élaguer (supprimer) les anciens objets inaccessibles. Les nombres varieront selon l'état de votre dépôt.
Focus sur `git prune`
Bien que git gc gère de nombreuses tâches de nettoyage, git prune s'occupe spécifiquement de supprimer les objets « pendants » ou « inaccessibles ».
- Objets pendants : ce sont des objets qui existent dans votre dépôt, mais qui ne sont plus référencés par aucun commit, aucune branche ni aucune étiquette, et qui ne font pas non plus partie d'un fichier de paquetage.
- Objets inaccessibles : terme similaire à « pendants », mais plus général. Ces objets peuvent exister pour diverses raisons, par exemple après un rebase ou une réinitialisation qui réécrit l'historique.
git prune supprime ces objets s'ils sont antérieurs à une durée d'expiration par défaut, généralement de deux semaines.
Exécuter `git prune` directement
Vous n'avez généralement pas besoin d'exécuter git prune directement, car git gc l'appelle. Vous pouvez toutefois l'utiliser pour effectuer un nettoyage plus ciblé.
Pour voir ce que ferait git prune sans rien supprimer réellement, utilisez l'option --dry-run :
git prune --dry-runÉlagage avec expiration
Par défaut, git prune (ainsi que l'étape d'élagage de git gc) supprime uniquement les objets datant de plus de deux semaines. Vous pouvez remplacer ce délai à l'aide de l'option --expire.
Cette option est utile si vous souhaitez nettoyer de manière plus radicale des objets pendants créés très récemment, par exemple après un rebase expérimental dont vous êtes certain de ne pas avoir besoin pour revenir en arrière.
Par exemple, pour élaguer les objets datant de plus d'un jour :
git prune --expire=1.dayDistinguer de `git reflog expire`
Il est important de ne pas confondre git prune et git reflog expire. Bien que ces commandes soient toutes deux liées au nettoyage, elles ont des objectifs différents :
git prune: supprime les véritables objets Git (blobs, arborescences et commits) de la base d'objets.git reflog expire: nettoie les entrées de votre reflog (un historique local des emplacements occupés par votre HEAD), ce qui rend certains commits plus difficiles à retrouver, mais ne supprime pas les objets eux-mêmes.
Soyez toujours prudent lorsque vous modifiez l'historique ou exécutez des commandes de nettoyage !
Vérification de la maintenance
Laquelle des propositions suivantes décrit le mieux le rôle principal de git gc ?
Récapitulatif et prochaines étapes
Félicitations ! Vous avez appris à garder vos dépôts Git propres et efficaces.
git gc: la commande tout-en-un qui effectue le ramassage des éléments inutilisés, le regroupement des objets et l'élagage.git prune: cible spécifiquement les objets inaccessibles ou pendants dépassant une durée d'expiration définie, puis les supprime.
Une maintenance régulière contribue à la fluidité de votre utilisation de Git et évite que vos dépôts occupent trop d'espace disque. Continuez ainsi !
Questions Fréquemment Posées
La leçon « Maintenance et nettoyage des dépôts » est-elle gratuite ?
Oui — le texte complet de « Maintenance et nettoyage des dépôts » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Git & GitHub Professional Workflow, passe à CoddyKit PRO. Le cours Git & GitHub Professional Workflow comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Maintenance et nettoyage des dépôts » ?
Découvrez des commandes comme `git gc` et `git prune` pour nettoyer et optimiser votre dépôt Git local. Tu pratiques Git & GitHub Professional Workflow avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Git & GitHub Professional Workflow ?
Aucune expérience préalable n'est requise. Git & GitHub Professional Workflow sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Maintenance et nettoyage des dépôts » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Git & GitHub Professional Workflow ?
Oui. Chaque leçon Git & GitHub Professional Workflow inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Git Reflog et récupération de l’historique
- Git Bisect pour le débogage
- Maintenance et nettoyage des dépôts
- Réécrire l’historique avec git filter-repo