guide

Quoi ignorer et quoi commiter

Critères pour ignorer sorties de build, dépendances, caches et secrets et commiter lockfiles, configurations d'exemple et réglages d'éditeur d'équipe, plus les .gitignore de sous-répertoires, les répertoires vides et la combinaison de modèles.

Un bon .gitignore se juge à ses critères, pas à sa longueur. Le critère est unique : une personne qui clone le dépôt de zéro peut-elle recréer le même résultat avec seulement le code et la configuration ? Ce qui peut être recréé est ignoré ; ce qui ne peut pas l'être, ou ce qui fige le résultat, est commité.

Ce qu'il faut ignorer

TypeExemplesRaison
Sorties de builddist/, build/, target/, *.o, *.classrecréées à partir du code
Dépendances installéesnode_modules/, vendor/ (PHP), .venv/réinstallées depuis le manifeste et le lockfile
Caches et journaux.cache/, .pytest_cache/, *.log, coverage/changent à chaque exécution
Environnement local et secrets.env, *.pem, local.properties, *.tfstatepropres à chaque personne/environnement ou ne doivent pas fuiter
État d'outils personnels.DS_Store, *.swp, .idea/workspace.xmlsans rapport avec le projet (gitignore global conseillé)

Ce qu'il faut commiter

Des .gitignore dans les sous-répertoires

Le .gitignore n'est pas réservé à la racine. Un .gitignore placé dans un sous-répertoire fonctionne par rapport à ce répertoire et prime sur les fichiers situés au-dessus. Dans un monorepo où chaque paquet a ses propres besoins, un fichier par dossier de paquet est plus lisible.

repo/
├── .gitignore          # commun : .DS_Store, .env, coverage/
├── apps/web/.gitignore # .next/, out/
└── services/api/.gitignore # target/

Conserver des répertoires vides

git suit uniquement des fichiers et n'enregistre pas les répertoires vides. Pour qu'un dossier existe mais que son contenu soit ignoré, comme un dossier de journaux, placez-y un fichier marqueur et réincluez-le avec une négation.

/log/*
!/log/.keep

Les noms .keep ou .gitkeep ne sont pas une fonctionnalité officielle de git, seulement une convention. N'importe quel nom fonctionne. Autre méthode : placer dans le dossier un .gitignore avec le contenu suivant, qui ignore tout sauf lui-même.

*
!.gitignore

En combinant des modèles

Des règles courtes et précises

Des règles trop larges comme *.json avalent aussi les fichiers de configuration. Restreignez le chemin autant que possible (/dist/) et terminez les répertoires par une barre pour les distinguer des fichiers de même nom. Un commentaire d'une ligne au-dessus de la règle pour en donner la raison aide la personne suivante à décider si elle peut la supprimer.

Références

← PrécédentPourquoi est-ce ignoré ? Déboguer avec git check-ignore