Warum funktioniert .gitignore nicht?

Häufige Ursachen sind bereits von Git erfasste Dateien, Regeln an anderer Stelle oder Muster, die nicht zum tatsächlichen Pfad passen.

1. Prüfen, ob Git die Datei bereits erfasst

Ausschlussregeln gelten für nicht erfasste Dateien. Wurde eine Datei zuvor eingecheckt, entfernt eine neue Regel sie nicht aus dem Git-Index.

git ls-files -- path/to/file

Gibt der Befehl den Pfad aus, wird die Datei bereits erfasst. Die folgende Anleitung beschreibt, wie du das beendest:

Wie ignoriere ich Dateien, die Git bereits versioniert?

2. Die passende Regel mit Git ermitteln

Führe die Prüfung im Repository mit dem tatsächlichen relativen Pfad aus. Die Ausgabe nennt die Quelldatei der Regel und die Zeilennummer.

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

Ergänze --no-index, wenn du Regeln für eine bereits erfasste Datei prüfen möchtest:

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

3. Position und Reihenfolge der Muster prüfen

Ein führender / verankert das Muster im Verzeichnis der jeweiligen .gitignore. Ein abschließender / beschränkt es auf Verzeichnisse. Bei gleicher Priorität können spätere passende Muster frühere überschreiben. Ein Muster mit ! kann einen Pfad wieder einschließen, aber keine Datei in einem Verzeichnis, das Git bereits von der Suche ausgeschlossen hat.

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

4. Weitere Ausschlussquellen prüfen

Git liest außerdem .git/info/exclude und die mit core.excludesFile konfigurierte globale Datei. Eine Datei kann deshalb auch ohne passende Regel in der Projekt-.gitignore verborgen sein. Prüfe die globale Konfiguration mit:

git config --get core.excludesFile

Warum wird eine Datei durch globale Git-Regeln ignoriert?

Das genaue Verhalten und weitere Einzelheiten erläutern die offiziellen Quellen: Git-Dokumentation