Direkt zum Inhalt

Git Clean: Unverfolgte Dateien entfernen und Repos aufgeräumt halten

Master git clean, um nicht getrackte Dateien und Verzeichnisse sicher zu entfernen. Erfahre die wichtigsten Optionen, den interaktiven Modus und die besten Methoden, um Datenverluste zu vermeiden.
Aktualisierte 7. März 2025  · 8 Min. Lesezeit

Wenn du an einem Git-Repository arbeitest, sammeln sich häufig nicht verfolgte Dateien und Verzeichnisse an, die nicht Teil des Versionskontrollsystems des Repositorys sind. Dazu können temporäre Dateien, Build-Artefakte oder andere lokal erstellte Dateien gehören, die nicht übertragen werden. Mit der Zeit können diese Dateien das Arbeitsverzeichnis unübersichtlich machen, was es schwieriger macht, einen sauberen und organisierten Arbeitsbereich zu erhalten.

Um dieses Problem zu lösen, gibt es in Git den Befehl git clean, mit dem nicht verfolgte Dateien und Verzeichnisse entfernt werden. In diesem Leitfaden zeige ich dir, wie du git clean sicher nutzen kannst, welche Optionen es gibt und wie du am besten vorgehst, um unbeabsichtigtes Löschen von Dateien zu vermeiden und dein Git-Repository aufgeräumt zu halten. Zum weiteren Lernen empfehle ich unsere Kurse Foundations of Git und Introduction to GitHub Concepts, um mehr über Versionskontrolle und den Unterschied zwischen Git und GitHub zu erfahren.

Git Clean verstehen

Der Befehl git clean ist ein nützliches Werkzeug in Git, mit dem nicht verfolgte Dateien aus dem Arbeitsverzeichnis entfernt werden. Der Befehl git clean ist nützlich, wenn du dein Arbeitsverzeichnis auf einen ursprünglichen Zustand zurücksetzen musst, z.B. vor dem Wechsel von Zweigen oder nach der Ausführung von Build-Prozessen, die temporäre Dateien erzeugen. Der Befehl git clean sollte jedoch mit Vorsicht verwendet werden, da er nicht verfolgte Dateien und Verzeichnisse dauerhaft löscht, ohne sie in einen Papierkorb zu verschieben.

Im Gegensatz zu git reset oder git checkout, die verfolgte Dateien verändern, befasst sich git clean ausschließlich mit Dateien und Verzeichnissen, die nicht unter Versionskontrolle stehen. Dazu gehören:

  • Temporäre Dateien, die durch Builds erstellt werden

  • Log-Dateien oder zwischengespeicherte Daten

  • Dateien, die in .gitignore aufgelistet sind (wenn explizit mit -x angegeben)

Der Befehl git clean ist nützlich, um ein aufgeräumtes Arbeitsverzeichnis zu erhalten und ergänzt andere Git-Befehle wie git reset und git checkout, die Änderungen in getrackten Dateien verwalten.

Das Complete Git Cheat Sheet ist ein praktisches Nachschlagewerk für gängige Git-Befehle.

Häufige Verwendungen für git clean

Der Befehl git clean ist ein nützliches Werkzeug, um ein sauberes Arbeitsverzeichnis zu erhalten. Im Folgenden sind einige häufige Anwendungsfälle aufgeführt, in denen git clean unnötige Dateien und Verzeichnisse sicher entfernen kann.

Entfernen von nicht verfolgten Dateien

Wenn du in einem Git-Repository arbeitest, können sich mit der Zeit nicht verfolgte Dateien ansammeln. Die folgenden Optionen helfen, sie zu entfernen:

  • git clean -f: Erzwingt das Entfernen von nicht verfolgten Dateien.

  • git clean -fd: Entfernt nicht verfolgte Dateien und nicht verfolgte Verzeichnisse.

  • git clean -fx: Entfernt nicht verfolgte und ignorierte Dateien, wie die in .gitignore aufgeführten.

Du solltest jedoch vorsichtig sein, wenn du die Option -fx verwendest, da sie auch ignorierte Dateien löscht. Überprüfe immer mit einem Trockenlauf (git clean -n), bevor du den Befehl ausführst.

Interaktiver Modus

Der Befehl git clean -i ermöglicht einen interaktiven Modus, in dem du nicht verfolgte Dateien selektiv entfernen kannst. Dieser Modus ist nützlich, wenn du mehr Kontrolle darüber haben willst, welche Dateien oder Verzeichnisse gelöscht werden.

Angenommen, du arbeitest an einem Projekt, bei dem du die Änderungen bereits im Ordner Olympics gespeichert hast. Du hast jedoch neue Datenquellen mit den Namen 2024_Data, und 2025_Data hinzugefügt. Wenn du den Befehl git clean -i ausführst, erhältst du eine Eingabeaufforderung, in der du aus den folgenden Optionen wählen kannst, um die nicht verfolgten Änderungen zu löschen.

  • clean:  Ausgewählte Dateien entfernen

  • filter: Gib ein Muster für zu bereinigende Dateien an

  • select: Einzelne Dateien nach Nummer auswählen

  • quit: Beenden, ohne etwas zu löschen

git clean -i interaktiver Modus.

git clean -i interaktiver Modus. Bild vom Autor.

Trockenübung zur Sicherheit

Die Option git clean -n ist eine nützliche Sicherheitsmaßnahme, da sie einen "Trockenlauf" durchführt und eine Liste der nicht verfolgten Dateien und Verzeichnisse anzeigt, die entfernt werden würden, ohne sie tatsächlich zu löschen. So kannst du die Änderungen überprüfen, bevor du sie ausführst.

Im folgenden Beispiel listet der Befehl git clean -n die Dateien auf, die gelöscht werden sollen, löscht sie aber nicht.

git clean -n für einen Trockenlauf.

git clean -n für einen Trockenlauf. Bild vom Autor.

Kombinieren mit git reset

Um ein Git-Arbeitsverzeichnis vollständig zurückzusetzen, kannst du git reset and git clean wo kombinieren:

  • git reset --hard: Setzt verfolgte Dateien auf den letzten übertragenen Zustand zurück und verwirft alle lokalen Änderungen.

  • git clean -fd: Entfernt nicht verfolgte Dateien und Verzeichnisse und hinterlässt nur übertragene Dateien.

Diese Kombination sorgt für ein komplett sauberes Arbeitsverzeichnis und ist nützlich, wenn du den Zweig wechselst, experimentelle Änderungen rückgängig machst oder einen Neustart vorbereitest.

Sieh dir die Website an oder besuche Git Pull Force: Wie man einen lokalen Zweig mit einem entfernten Tutorial überschreibt, um die besten Methoden zum Überschreiben lokaler Änderungen zu lernen.

Schritt-für-Schritt-Anleitung für die Verwendung von git clean

Befolge diese Schritte, um dein Git-Repository sicher zu bereinigen und unerwünschte, nicht verfolgte Dateien und Verzeichnisse zu entfernen.

Schritt 1: Prüfe den aktuellen Status

Bevor du die Bereinigung durchführst, solltest du git status ausführen, um den aktuellen Status deines Repositorys zu überprüfen und zu sehen, welche Dateien nicht getrackt sind.

git status

git status, um den aktuellen Status des Repositorys zu überprüfen.

git status, um den aktuellen Status des Repositorys zu überprüfen. Bild vom Autor.

Schritt 2: Vorschau, was entfernt werden soll

Bevor du einen Entfernungsbefehl ausführst, kannst du unter git clean -n eine Vorschau der zu entfernenden Dateien anzeigen.

git clean -n

git clean -n, um zu sehen, was gelöscht werden soll.

git clean -n, um zu sehen, was gelöscht werden soll. Bild vom Autor.

Schritt 3: Unverfolgte Dateien entfernen

Führe git clean -f aus, um nicht verfolgte Dateien zu entfernen, wenn die Vorschau korrekt aussieht.

git clean -f

Entferne nicht verfolgte Änderungen mit git clean -f.

Entferne nicht verfolgte Änderungen mit git clean -f. Bild vom Autor.

Schritt 4: Unverfolgte Verzeichnisse entfernen

Verwende git clean -fd, um nicht verfolgte Verzeichnisse zu entfernen.

git clean -fd

Entferne nicht verfolgte Verzeichnisse mit git clean -fd.

Entferne nicht verfolgte Verzeichnisse mit git clean -fd. Bild vom Autor.

Schritt 5: Ignorierte Dateien entfernen

Um sowohl nicht verfolgte als auch ignorierte Dateien zu entfernen, verwendest du den Befehl git clean -fx.

git clean -fx

Schritt 6: Benutze den interaktiven Modus für die selektive Reinigung

Für mehr Kontrolle kannst du git clean -i für die interaktive Entfernung verwenden. In diesem Modus kannst du auswählen, welche Dateien einzeln gelöscht werden sollen.

Git clean -i

git clean -i interaktiver Modus für selektive Reinigung.

git clean -i interaktiver Modus für selektive Reinigung. Bild vom Autor.

git clean vs. Andere Git-Befehle

Der Befehl git clean wird oft mit anderen Git-Befehlen verglichen, die Dateien verändern oder zurücksetzen. In der folgenden Tabelle sind die wichtigsten Unterschiede aufgeführt:

Befehl Funktion
git clean Entfernt nicht verfolgte Dateien und Verzeichnisse dauerhaft.
git reset Setzt verfolgte Dateien auf einen früheren Zustand zurück, was sich auf bereitgestellte und übertragene Änderungen auswirkt.
git checkout (oder git restore) Verwirft Änderungen in verfolgten Dateien, entfernt sie aber nicht.
git stash Speichert sowohl verfolgte als auch nicht verfolgte Änderungen vorübergehend zur späteren Verwendung.

Git Clean Best Practices

Um git clean sicher und effektiv zu nutzen, befolge diese bewährten Methoden:

  • Verwende Trockenübungen (-n) vor dem Löschen: Verwende immer die Option git clean -n, um einen Trockenlauf durchzuführen, bevor du git clean ausführst. So kannst du in der Vorschau sehen, welche Dateien entfernt werden, ohne sie tatsächlich zu löschen.

  • Achte auf ignorierte Dateien: Wenn du git clean verwendest, sei vorsichtig mit der Option -x, die ignorierte Dateien entfernt. Dadurch können möglicherweise wichtige Konfigurationsdateien gelöscht werden, die unter .gitignore aufgeführt sind. Wenn du ignorierte Dateien entfernen musst, verwende den Befehl git clean -fx.

  • Kombiniere mit Git Reset für eine vollständige Bereinigung: Um dein Repository komplett zurückzusetzen, kombiniere git reset mit git clean, wobei git reset --hard die getrackten Dateien auf ihren letzten Commit-Status zurücksetzt und git clean -fd die nicht getrackten Dateien und Verzeichnisse entfernt.

  • Verwende den interaktiven Modus (-i) für sicherere Löschungen: Anstatt Dateien blind zu entfernen, solltest du den interaktiven Modus (git clean -i) verwenden, um die zu löschenden Dateien zu überprüfen und auszuwählen.

Mögliche Risiken und Vorsichtsmaßnahmen

Die Verwendung von git clean kann riskant sein, wenn du nicht vorsichtig vorgehst, denn sie löscht Dateien dauerhaft, ohne sie irgendwo zu speichern. Hier sind einige wichtige Risiken und Vorsichtsmaßnahmen, die du beachten solltest:

  • Dateien werden dauerhaft gelöscht: Im Gegensatz zu git stash, das Änderungen vorübergehend speichert, löscht git clean nicht verfolgte Dateien und Verzeichnisse dauerhaft. Einmal entfernt, können diese Dateien nicht über Git wiederhergestellt werden. Wenn du die Dateien später noch brauchst, solltest du sie vor der Ausführung des Befehls git clean sichern.

  • Sei vorsichtig mit der Option -x: Wenn du git clean-fx verwendest, werden ignorierte Dateien entfernt, z.B. wichtige Konfigurationsdateien, die in .gitignore aufgeführt sind, oder Abhängigkeits-Caches wie node_modules/ und venv/. Das versehentliche Entfernen dieser Dateien kann Builds oder Entwicklungsumgebungen zerstören, daher solltest du diese Option nur bei Bedarf verwenden.

  • Führe zuerst einen Trockenlauf durch: Führe immer einen Trockenlauf mit git clean -n durch, bevor du git clean -f ausführst. In diesem Schritt kannst du in der Vorschau sehen, welche Dateien gelöscht werden, damit du nicht versehentlich wichtige Dateien entfernst.

  • Alternative Lösungsansätze: In manchen Szenarien kann die Verwendung von git stash eine bessere Option sein als git clean. Der Befehl git stash -u speichert nicht verfolgte Dateien und schließt ignorierte Dateien für eine mögliche spätere Wiederherstellung aus. git stash pop stellt die gespeicherten Änderungen bei Bedarf wieder her. Diese Methode ist nützlich, wenn du den Zweig wechseln oder deinen Arbeitsbereich aufräumen musst, ohne dass die Änderungen dauerhaft verloren gehen.

Fazit

Eine gut gepflegte Codebasis zeugt von Liebe zum Detail, Effizienz und der Fähigkeit, digitale Ressourcen verantwortungsvoll zu verwalten. Arbeitgeber suchen nach Entwicklern, die sich mit Best Practices auskennen, wie z.B. git clean -n vor dem Löschen von Dateien zu verwenden, vorsichtig mit ignorierten Dateien zu sein ( -x) und sicherere Alternativen wie git stash zu nutzen.

Die Teilnahme an DataCamp-Kursen ist nicht nur eine großartige Möglichkeit zu lernen, sondern auch eine gute Möglichkeit, Arbeitgebern zu signalisieren, dass du die Softwareentwicklung ernst nimmst. Zu diesem Zweck empfehle ich, unseren Blogbeitrag Top 20 Git Interview Questions and Answers for All Levels zu lesen und unseren neuen Lernpfad Git Fundamentals zu besuchen, um ein Experte in Sachen Git zu werden.

Lerne heute die Git-Grundlagen

Für Anfänger: Master-Versionskontrolle mit Git.
Kostenloses Lernen beginnen

Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Ich verfasse Artikel, die Datenwissenschaft und Analytik vereinfachen und leicht verständlich und zugänglich machen.

Git Clean FAQs

Was macht git clean?

git clean entfernt nicht verfolgte Dateien und Verzeichnisse aus deinem Git-Arbeitsverzeichnis.

Löscht git clean übertragene Dateien?

Nein, git clean entfernt nur ungetrackte Dateien und wirkt sich nicht auf committed oder staged Dateien aus.

Wie kann ich eine Vorschau von Dateien anzeigen, bevor ich sie lösche?

Verwende git clean -n, um einen Trockenlauf durchzuführen und zu sehen, welche Dateien entfernt werden.

Was ist der Unterschied zwischen git clean -f und git clean -fd?

git clean -f entfernt nicht verfolgte Dateien, während git clean -fd auch nicht verfolgte Verzeichnisse entfernt.

Was ist der Unterschied zwischen git clean und git reset?

git clean entfernt nicht verfolgte Dateien, während git reset verfolgte Dateien in einen früheren Zustand zurückversetzt.

Gibt es eine Möglichkeit, Dateien selektiv zu löschen?

Ja, verwende git clean -i für den interaktiven Modus, in dem du die zu löschenden Dateien auswählen kannst.

Themen

Git lernen mit DataCamp

Zertifizierung verfügbar

Kurs

Einführung in Git

2 hr
15.6K
Entdecke die Grundlagen von Git für die Versionskontrolle in deinen Software- und Datenprojekten.
Siehe DetailsRight Arrow
Kurs starten
Zertifizierung verfügbar

Kurs

Grundlagen von Git

4 hr
46K
Mache dich mit Git für die Versionskontrolle vertraut. Erfahre, wie du Dateien verfolgen, vergleichen, ändern und rückgängig machen kannst und wie du mit Kollegen mit Git zusammenarbeitest.
Mehr anzeigenRight Arrow