Pourquoi .gitignore ne fonctionne-t-il pas ?

Le problème vient souvent d’un fichier déjà suivi, d’une règle ailleurs ou d’un motif qui ne correspond pas au chemin attendu.

1. Vérifier si Git suit déjà le fichier

Les règles concernent les fichiers volontairement non suivis. Ajouter un motif ne retire pas de l’index un fichier déjà validé.

git ls-files -- path/to/file

Si le chemin apparaît, le fichier est suivi. Consultez l’article correspondant :

Comment ignorer des fichiers déjà suivis par Git ?

2. Identifier la règle appliquée

Lancez la vérification depuis le dépôt avec le vrai chemin relatif. La sortie indique le fichier de règles et sa ligne.

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

Pour tester un fichier déjà suivi, utilisez --no-index :

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

3. Vérifier l’emplacement et l’ordre

Un / initial ancre le motif au dossier contenant ce .gitignore ; un / final le limite aux dossiers. À priorité égale, une règle ultérieure peut remplacer une précédente. ! peut réinclure un chemin, mais pas un fichier dont le dossier parent est exclu du parcours de Git.

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

4. Vérifier les autres sources

Git lit aussi .git/info/exclude et le fichier global défini par core.excludesFile. Un fichier peut donc être ignoré sans règle dans le .gitignore du projet. Vérifiez la configuration globale :

git config --get core.excludesFile

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

Pour le comportement exact et davantage de détails, consultez les références officielles : Documentation Git