Aller au contenu principal

`.gitignore`

Un fichier .gitignore désigne les fichiers volontairement non suivis que Git doit ignorer. Il n’arrête pas le suivi des fichiers déjà présents dans l’index et ne supprime rien de l’historique des commits. Il est particulièrement utile pour exclure les informations sensibles, configurations propres à un utilisateur, fichiers temporaires créés par l’environnement de développement ou dépendances installables par un gestionnaire de paquets.

Syntaxe et structure​

Un fichier .gitignore emploie des motifs glob pour faire correspondre des noms de fichiers. Son fonctionnement :

  • Les lignes vides sont ignorées ; elles servent à espacer et organiser le fichier.
  • Les lignes commençant par # sont des commentaires.
  • Les motifs glob standards correspondent aux fichiers ou chemins :
    • * correspond à zéro caractère ou plus, sauf /.
    • ? correspond à exactement un caractère, sauf /.
    • [...] correspond à tout caractère placé entre crochets.
    • **/ correspond récursivement à tout répertoire.

Motifs courants​

# Ignore all .log files
*.log

# Ignore a specific file
secret.txt

# Ignore all files in a specific directory
tmp/*

# Ignore all .txt files in a specific directory
docs/*.txt

# Ignore a directory and everything inside it
node_modules/

# Ignore all .pdf files in any directory
**/*.pdf

Bonnes pratiques​

  • Règles partagées, imbriquées et personnelles : versionnez les règles communes au dépôt dans le .gitignore racine ; les .gitignore des sous-répertoires peuvent ajouter ou remplacer des règles dans les répertoires parcourus par Git. Si un répertoire parent est exclu, il faut d’abord cesser de l’ignorer pour que ses règles imbriquées puissent réinclure des fichiers. Placez les motifs personnels propres à ce dépôt dans .git/info/exclude, ou configurez core.excludesFile pour les motifs personnels partagés entre dépôts.
  • Validez .gitignore tôt : ajoutez et validez ce fichier dès que possible afin d’éviter l’inclusion accidentelle de fichiers indésirables.
  • Données sensibles : si un secret d’authentification a été commité, remplacez-le ou révoquez-le d’abord. Ajouter le chemin à .gitignore ne supprime pas l’historique existant. Utilisez git filter-repo, BFG Repo-Cleaner ou la procédure documentée de l’hébergeur pour supprimer l’historique, puis coordonnez cette réécriture avec tous les collaborateurs.
  • Modèles : de nombreux projets ont des besoins semblables. Des sites comme gitignore.io offrent des modèles par type de projet pour démarrer avec un fichier complet.

Exemple de .gitignore pour un projet Java​

# Compiled class files
*.class

# Build directories
target/
out/

# Package Files
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# Maven
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties

# IntelliJ IDEA
.idea/
*.iml
*.iws

# Eclipse
.classpath
.project
.settings/

# Mac OS folder attributes
.DS_Store

En conclusion, un fichier .gitignore bien configuré est indispensable au maintien d’un dépôt propre et sûr. Il réduit l’encombrement et évite la validation accidentelle de fichiers inutiles ou sensibles.

Comparer les modèles de langage et d’éditeur de la collection gitignore de GitHub aux besoins du projet. Examiner chaque règle avant de la copier et vérifier les correspondances incertaines avec git check-ignore -v. Un modèle est un point de départ ; il ignore quels fichiers générés le projet souhaite volontairement versionner.

Explorer les liensOuvrir le réseau