1. Comprendre le motif incorrect
Prenez build/keep.txt et build/discard.txt, non suivis à la racine. Ces règles excluent build lui-même : Git ne le parcourt pas pour chercher keep.txt. L’exception ultérieure ne peut pas réinclure ce fichier.
/build/
!/build/keep.txt 2. Ignorer le contenu, puis conserver un fichier
Remplacez les deux règles du .gitignore racine par celles ci-dessous. build reste accessible, son contenu direct est ignoré et keep.txt est réinclus. Pour une exception plus profonde, chaque dossier parent doit aussi rester accessible.
À priorité égale, la dernière règle correspondante l’emporte. Placez l’exception après l’exclusion et vérifiez aussi les autres règles et .gitignore imbriqués.
/build/*
!/build/keep.txt 3. Vérifier les deux fichiers
Créez les deux fichiers et lancez ces commandes à la racine. La sortie détaillée doit afficher !/build/keep.txt pour keep.txt et /build/* pour discard.txt. Une ligne avec ! indique une réinclusion, pas une exclusion.
git check-ignore -v -- build/keep.txt build/discard.txtL’état doit afficher build/keep.txt comme non suivi et omettre build/discard.txt. Pour des fichiers déjà suivis, consultez l’article dédié : les règles ne changent pas l’index.
git status --short --untracked-files=all -- build/ Pour le comportement exact et davantage de détails, consultez les références officielles : Documentation Git · Documentation git check-ignore