Ein häufiger Irrtum bei Git:
„Ich habe die Datei in
.gitignoreeingetragen, warum trackt Git sie trotzdem?“
Die Erklärung ist simpel – aber wichtig:
.gitignore wirkt nur auf ungetrackte Dateien.
Alles, was Git bereits kennt, bleibt auch weiterhin unter Versionskontrolle.
Was .gitignore tatsächlich tut
.gitignore verhindert:
- dass neue, ungetrackte Dateien
- versehentlich zu Git hinzugefügt werden
Es entfernt keine Dateien, die bereits Teil der Git-History sind.
Lösung: Datei aus dem Index entfernen
Um Git „vergessen zu lassen“, dass eine Datei getrackt wird, musst du sie aus dem Index entfernen – nicht vom Dateisystem.
Einzelne Datei nicht mehr tracken
git rm --cached <file>
Beispiel:
git rm --cached config.json
Was passiert dabei:
- die Datei bleibt lokal erhalten
- Git hört auf, sie zu tracken
- die Änderung wird beim nächsten Commit wirksam
Ordner rekursiv aus dem Tracking entfernen
Wenn ein kompletter Ordner ignoriert werden soll:
git rm -r --cached <folder>
Beispiel:
git rm -r --cached build/
Damit entfernt Git alle Dateien im Ordner aus dem Index.
Änderungen committen
Nach dem Entfernen aus dem Index musst du die Änderung committen:
git commit -m "Stop tracking ignored files"
Ab diesem Punkt greift .gitignore wie erwartet.
Wichtiger Hinweis für Teams
Achtung:
Auch wenn die Datei lokal nicht gelöscht wird, gilt:
- Beim nächsten
git pullwird die Datei
aus den Working Trees anderer Entwickler entfernt
Das ist korrektes Verhalten – kann aber überraschend sein.
Deshalb:
- Team informieren
- sensible Dateien (z. B. Konfigurationen) vorher abstimmen
Typische Anwendungsfälle
- lokale Konfigurationsdateien (
.env,config.local.json) - Build-Artefakte, die versehentlich committed wurden
- IDE-spezifische Dateien
Anderes Thema: Git: Untracked Dateien aus dem Working Tree entfernen