guide

Configurer un gitignore global (core.excludesFile)

Comment configurer core.excludesFile pour ignorer dans tous les dépôts les fichiers propres à votre environnement, comme le .DS_Store de macOS ou les fichiers d'éditeur, et quel est le chemin par défaut.

Des fichiers comme .DS_Store, Thumbs.db, .idea/workspace.xml ou *.swp n'existent pas à cause du projet, mais à cause de votre ordinateur et de votre éditeur. Le gitignore global est l'endroit où écrire ces règles une seule fois au lieu de les répéter dans chaque dépôt.

Chemin par défaut

Même sans configuration, git lit le fichier suivant comme liste globale d'exclusions.

Sur la plupart des environnements macOS et Linux, il suffit donc de créer le fichier ~/.config/git/ignore.

mkdir -p ~/.config/git
printf '.DS_Store\n*.swp\n.idea/workspace.xml\n' >> ~/.config/git/ignore

Utiliser un autre fichier : core.excludesFile

Pour utiliser un fichier à l'emplacement de votre choix, réglez core.excludesFile. Une fois défini, git lit ce fichier à la place du chemin par défaut.

# macOS / Linux
git config --global core.excludesFile ~/.gitignore_global

# Windows (PowerShell)
git config --global core.excludesFile "$env:USERPROFILE\.gitignore_global"

Vérifiez le réglage avec la commande suivante.

git config --global --get core.excludesFile

Si rien ne s'affiche, la valeur n'est pas définie et le chemin par défaut ci-dessus est utilisé.

Que mettre dans le fichier global

Le global convient aux fichiers personnels qui apparaissent de la même façon quel que soit le projet.

TypeExemplesModèle conseillé
Système d'exploitation.DS_Store, ._*, Thumbs.db, desktop.ini, *~macOS, Windows, Linux
État personnel d'éditeur/IDE*.swp, .idea/workspace.xml, fichiers personnels de .vscode/*Vim, JetBrains, VisualStudioCode
Outils personnels.envrc (direnv), dossier de notes personnellesà écrire soi-même

Si vous ne sélectionnez que des modèles comme macOS et JetBrains dans le générateur et copiez le résultat, il peut servir tel quel de contenu pour le fichier global.

À l'inverse, les sorties de build, les dossiers de dépendances et les fichiers secrets vont dans le .gitignore du projet et non dans le global, car ces règles doivent s'appliquer à toute personne qui clone le dépôt.

Limites du fichier global

Le gitignore global ne s'applique que sur votre ordinateur. Si un collègue ne l'a pas configuré, son .DS_Store peut encore être commité. C'est pourquoi le dépôt de modèles de GitHub propose à la fois de placer les modèles Global dans le fichier global et de les fusionner dans les modèles du projet.

En pratique, ce critère fonctionne bien.

Priorité

Le fichier global a la priorité la plus basse des quatre sources de règles. Même si le global ignore *.log, un !keep.log dans le .gitignore du projet l'emporte. En cas de doute sur la règle appliquée, lancez git check-ignore -v <chemin>. Si le chemin du fichier global apparaît au début de la sortie, c'est la règle globale qui a décidé.

Références

← PrécédentPriorité des règles gitignore et motifs de négation (!)