Git: Untracked Dateien aus dem Working Tree entfernen

Tutorial: So entfernst du ungetrackte Dateien und Ordner aus deinem Git-Working-Tree – sicher, kontrolliert und ohne böse Überraschungen.

Dieser Artikel hat eine Lesedauer von 2 minutes Minuten.

Git: Untracked Dateien aus dem Working Tree entfernen

Build-Artefakte, temporäre Dateien, Logs oder lokale Experimente: Im Laufe der Zeit sammelt sich im Working Tree einiges an, das nicht von Git verwaltet wird.

Diese sogenannten untracked files können:

  • Builds verfälschen
  • Tests beeinflussen
  • Verzeichnisse unübersichtlich machen

Die Lösung dafür ist der Git-Befehl git clean.

Achtung: git clean löscht Dateien endgültig

Warnung: git clean entfernt Dateien physisch vom Dateisystem.
Gelöschte Dateien landen nicht im Papierkorb und lassen sich nicht über Git wiederherstellen.

Deshalb gilt: Immer zuerst einen Dry-Run machen.

Schritt 1: Anzeigen, was gelöscht würde (Dry Run)

git clean -n -d
  • -n → zeigt nur an, was passieren würde
  • -d → berücksichtigt auch ungetrackte Ordner

Dieser Befehl ist völlig ungefährlich und sollte immer zuerst ausgeführt werden.

Schritt 2: Untracked Dateien löschen

Wenn die Liste passt, kannst du die Dateien wirklich entfernen:

git clean -f

Da Git standardmäßig Schutzmechanismen aktiviert hat, ist -f (force) zwingend notwendig.

Untracked Ordner mit löschen

git clean -f -d

Oder kurz:

git clean -fd

Damit werden auch komplette Verzeichnisse entfernt, die nicht von Git verwaltet werden.

Ignorierte Dateien entfernen (.gitignore)

Standardmäßig respektiert git clean die Regeln aus .gitignore.

Nur ignorierte Dateien löschen

git clean -f -X

Typischer Anwendungsfall: Build-Artefakte neu erzeugen, ohne manuell angelegte Dateien zu verlieren.

Ignorierte und nicht ignorierte Dateien löschen

git clean -f -x

Das ist der radikalste Modus: Alles, was nicht von Git getrackt wird, fliegt raus.

Großes X vs. kleines x:

  • -X → nur ignorierte Dateien
  • -x → alle untracked Dateien

Warum -f nötig ist

Git verlangt das -f-Flag, wenn die Konfiguration clean.requireForce aktiv ist (Standard). Ohne -f, -n oder -i passiert bewusst gar nichts.

Das ist Absicht und ein Schutz vor versehentlichem Datenverlust.

Fazit

git clean ist das richtige Werkzeug, um den Working Tree aufzuräumen aber nur, wenn man es kontrolliert einsetzt. Anderes Thema: Git: git pull “überschreiben”, lokale Dateien

Eine Idee im Kopf?


Dann kontaktier mich doch


Wenn du Social-Media-Unterstützung brauchst oder ein Thema journalistisch sauber aufbereiten willst, melde dich.