Comment ignorer une extension ? Utiliser * et **

*.log ignore les noms terminés par .log dans la portée du .gitignore. Pour un dossier précis, décidez si les sous-dossiers sont concernés.

1. Ignorer une extension dans le projet

Dans le .gitignore racine, ce motif correspond à app.log, logs/app.log et src/app.log. * représente zéro ou plusieurs caractères sauf / ; sans barre, Git compare les noms à toute profondeur sous ce .gitignore.

Écrivez un motif par ligne. Il s’agit de motifs Git, pas de commandes shell ni d’expressions régulières : *.{log,tmp} ne représente pas une liste d’extensions.

*.log

2. Limiter le motif à un dossier

La première variante correspond à logs/app.log mais pas à logs/archive/app.log. La seconde correspond aux deux : /**/ accepte zéro ou plusieurs dossiers intermédiaires. Aucune ne correspond à src/app.log.

Testez une seule variante à la fois. Une règle comme /logs/ peut déjà cacher les fichiers imbriqués en excluant le parent ; vérifiez les autres règles avant de conclure.

/logs/*.log
/logs/**/*.log

Comment ignorer des dossiers ? folder/ ou /folder/

3. Tester des chemins représentatifs

Choisissez une règle, créez les trois fichiers non suivis, puis examinez les correspondances :

git check-ignore -v -- logs/app.log logs/archive/app.log src/app.log

Avec /logs/**/*.log, les deux chemins sous logs doivent correspondre, mais pas src/app.log. Un motif commençant par ! est une exception ; ses dossiers parents doivent rester accessibles.

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