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.
$XDG_CONFIG_HOME/git/ignore- Si
XDG_CONFIG_HOMEest vide ou non définie,$HOME/.config/git/ignore
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.
| Type | Exemples | Modè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.
- Pour un projet personnel, ou si l'équipe peut demander à chacun de configurer le global, placez-les dans le global.
- Si vous ne maîtrisez pas les contributeurs, comme en open source, mettez au moins
.DS_StoreetThumbs.dbaussi dans le .gitignore du projet.
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é.