Wie ignoriere ich Dateiendungen? * und ** richtig einsetzen

*.log erfasst .log-Dateien auf allen Ebenen im Geltungsbereich einer .gitignore. Bei einer Beschränkung auf ein Verzeichnis entscheiden Sie zusätzlich, ob Unterverzeichnisse dazugehören.

1. Eine Dateiendung im ganzen Projekt ignorieren

In der .gitignore im Projektstamm passt diese Regel zu app.log, logs/app.log und src/app.log. * steht für null oder mehr Zeichen außer /. Ohne Schrägstrich im Muster prüft Git Namen auf jeder Ebene unterhalb dieser .gitignore.

Schreiben Sie jedes Muster in eine eigene Zeile. Ausschlussmuster sind keine Shell-Befehle oder regulären Ausdrücke. Die Klammern in *.{log,tmp} stehen hier nicht für eine Liste von Endungen.

*.log

2. Das Muster auf ein Verzeichnis beschränken

Die erste Alternative passt zu logs/app.log direkt unter logs, aber nicht zu logs/archive/app.log. Die zweite passt zu beiden: /**/ erlaubt null oder mehr Verzeichnisebenen dazwischen. Keine der beiden passt zu src/app.log.

Wenden Sie zum Vergleich jeweils nur eine Alternative an. Eine Verzeichnisregel wie /logs/ kann tiefere Dateien ebenfalls durch Ausschluss des Elternverzeichnisses verbergen. Prüfen Sie daher auch andere Regeln.

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

Wie ignoriere ich Ordner? folder/ gegenüber /folder/

3. Repräsentative Pfade prüfen

Wählen Sie eine Regel, erstellen Sie die drei unversionierten Beispieldateien und prüfen Sie die passenden Muster:

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

Mit /logs/**/*.log sollten beide Pfade unter logs passen, src/app.log dagegen nicht. Ein Treffer mit ! ist eine Ausnahme. Um eine Datei zu behalten, schreiben Sie eine ausdrückliche Ausnahme und lassen Sie alle Elternverzeichnisse durchsuchbar.

Warum bleibt eine Datei trotz ! in einem ignorierten Verzeichnis ausgeschlossen?

Das genaue Verhalten und weitere Einzelheiten erläutern die offiziellen Quellen: Git-Dokumentation · Dokumentation zu git check-ignore