Kurs
Git Clean: Unverfolgte Dateien entfernen und Repos aufgeräumt halten
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. 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. 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. 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. 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. 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. 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. 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 dugit 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 Befehlgit clean -fx
. -
Kombiniere mit Git Reset für eine vollständige Bereinigung: Um dein Repository komplett zurückzusetzen, kombiniere
git reset
mitgit clean
, wobeigit reset --hard
die getrackten Dateien auf ihren letzten Commit-Status zurücksetzt undgit 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öschtgit 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 Befehlsgit 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 wienode_modules/
undvenv/
. 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 dugit 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 alsgit clean
. Der Befehlgit 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
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.
Git lernen mit DataCamp
Kurs
Grundlagen von Git
Kurs