Pourquoi les règles Git globales ignorent-elles un fichier ?

Un fichier peut être ignoré sans motif correspondant dans le .gitignore du projet. Trouvez la source avant de changer la configuration.

1. Identifier la règle

À la racine du dépôt, remplacez path/to/file par le vrai chemin d’un fichier non suivi :

git check-ignore -v -- path/to/file

La sortie détaillée donne le fichier source, la ligne et le motif : .gitignore, .git/info/exclude ou fichier global. ! réinclut un chemin. L’absence de sortie peut aussi indiquer un fichier déjà suivi ; vérifiez-le séparément.

2. Localiser le fichier global configuré

Examinez la valeur effective de core.excludesFile et le fichier qui la définit :

git config --show-origin --get core.excludesFile

Aucune sortie avec un code de retour 1 signifie que ce paramètre est absent, pas que les exclusions globales sont désactivées. Git consulte aussi $XDG_CONFIG_HOME/git/ignore, ou $HOME/.config/git/ignore si XDG_CONFIG_HOME est vide ou non défini. Commencez par la source indiquée par check-ignore.

3. Modifier la bonne source et vérifier

Les règles partagées vont dans .gitignore, les règles personnelles d’un dépôt dans .git/info/exclude, celles communes aux dépôts dans le fichier global. Modifier ce dernier affecte aussi les autres dépôts : ne supprimez pas toute la configuration pour un seul chemin. .gitignore est prioritaire sur .git/info/exclude et core.excludesFile ; une exception peut remplacer une exclusion moins prioritaire si aucun parent ne reste exclu. Vérifiez de nouveau le vrai chemin :

git check-ignore -v -- path/to/file

Pourquoi ! ne conserve-t-il pas un fichier dans un dossier ignoré ?

Pour le comportement exact et davantage de détails, consultez les références officielles : Documentation Git · Documentation git check-ignore · Documentation de configuration Git