Git Clean: Entfernen Sie nicht verfolgte Dateien und halten Sie Repos sauber

Bei der Arbeit an einem Git-Repository ist es üblich, nicht nachverfolgte Dateien und Verzeichnisse anzuhäufen, die nicht Teil des Versionskontrollsystems des Repositories sind. Dazu können temporäre Dateien, Build-Artefakte oder andere lokal erstellte Dateien gehören, die nicht committet sind. Im Laufe der Zeit können diese Dateien das Arbeitsverzeichnis überfüllen und es schwieriger machen, einen sauberen und organisierten Arbeitsbereich aufrechtzuerhalten.

Um dieses Problem zu lösen, bietet Git den Befehl git clean an, der nicht nachverfolgte Dateien und Verzeichnisse entfernt. In diesem Leitfaden zeige ich Ihnen, wie Sie git clean sicher verwenden, seine verschiedenen Optionen und bewährte Verfahren, um unbeabsichtigtes Löschen von Dateien zu vermeiden, während Sie Ihr Git-Repository ordentlich halten. Für weiterführendes Lernen empfehle ich, unsere Kurse Grundlagen von Git und Einführung in die GitHub-Konzepte zu belegen, um mehr über Versionskontrolle und den Unterschied zwischen Git und GitHub zu erfahren.

Verständnis von git clean

Der Befehl git clean ist ein nützliches Werkzeug in Git, das nicht nachverfolgte Dateien aus dem Arbeitsverzeichnis entfernt. Der Befehl git clean ist nützlich, wenn Sie Ihr Arbeitsverzeichnis auf einen makellosen Zustand zurücksetzen müssen, z. B. vor dem Wechseln von Branches oder nach dem Ausführen von Build-Prozessen, die temporäre Dateien generieren. Es sollte jedoch vorsichtig mit dem Befehl git clean umgegangen werden, da er nicht nachverfolgte Dateien und Verzeichnisse dauerhaft löscht, ohne sie in den Papierkorb oder Mülleimer zu verschieben.

Im Gegensatz zu git reset oder git checkout, die nachverfolgte Dateien ändern, behandelt git clean streng Dateien und Verzeichnisse, die nicht unter Versionskontrolle stehen. Dazu gehören:

  • Temporäre Dateien, die durch Builds erstellt wurden

  • Protokolldateien oder zwischengespeicherte Daten

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

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

Ich finde das Complete Git Cheat Sheet eine praktische Referenz für gängige Git-Befehle.

Übliche Anwendungen für git clean

Der Befehl git clean ist ein nützliches Werkzeug zur Pflege eines sauberen Arbeitsverzeichnisses. Im Folgenden sind einige übliche Anwendungsfälle aufgeführt, in denen git clean sicher unnötige Dateien und Verzeichnisse entfernen kann.

Entfernen von nicht verfolgten Dateien

Beim Arbeiten in einem Git-Repository können sich im Laufe der Zeit nicht verfolgte Dateien ansammeln. Die folgenden Optionen helfen bei der Entfernung:

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

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

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

Jedoch sollten Sie vorsichtig sein, wenn Sie die -fx Option verwenden, da sie auch ignorierte Dateien entfernt. Überprüfen Sie immer mit einem Testlauf (git clean -n), bevor Sie den Befehl ausführen.

Interaktiver Modus

Der Befehl git clean -i ermöglicht einen interaktiven Modus, der es Benutzern ermöglicht, selektiv nicht nachverfolgte Dateien zu entfernen. Dieser Modus ist nützlich, wenn Sie mehr Kontrolle darüber haben möchten, welche Dateien oder Verzeichnisse gelöscht werden sollen.

Angenommen, Sie arbeiten an einem Projekt, in dem Sie bereits die Änderungen im Ordner Olympics gespeichert haben. Sie haben jedoch neue Datenquellen mit den Namen 2024_Data und 2025_Data hinzugefügt. Wenn Sie den Befehl git clean -i ausführen, erhalten Sie die Aufforderung, aus den folgenden Optionen auszuwählen, um die nicht nachverfolgten Änderungen zu löschen.

  • clean:  Ausgewählte Dateien entfernen

  • filter: Ein Muster für zu bereinigende Dateien angeben

  • select: Individuelle Dateien anhand der Nummer auswählen

  • quit: Beenden, ohne etwas zu löschen

git clean -i interaktiver Modus. Bild von Autor.

Trockenlauf zur Sicherheit

Die Verwendung der Option git clean -n ist eine nützliche Sicherheitsmaßnahme, da sie einen „Trockenlauf“ durchführt und eine Liste von nicht verfolgten Dateien und Verzeichnissen anzeigt, die gelöscht würden, ohne sie tatsächlich zu löschen. Dadurch können Sie die Änderungen vor der Ausführung überprüfen.

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 den Trockenlauf. Bild von Autor.

Kombination mit git reset

Um ein Git Arbeitsverzeichnis vollständig zurückzusetzen, können Sie `git reset` und `git clean` kombinieren, wobei:

  • git reset --hard: Setzt verfolgte Dateien auf den zuletzt committeten Zustand zurück und verwirft lokale Änderungen.

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

Diese Kombination sorgt für ein vollständig sauberes Arbeitsverzeichnis und ist nützlich beim Wechseln von Branches, Rückgängigmachen von Experimenten oder Vorbereiten für einen Neuanfang.

Schau dir das Tutorial zu Git Pull Force: Wie man einen lokalen Branch mit Remote überschreibt an, um die besten Praktiken zum Überschreiben lokaler Änderungen zu erlernen.

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

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

Schritt 1: Überprüfe den aktuellen Zustand

Vor dem Säubern führe git status aus, um den aktuellen Zustand deines Repositorys zu überprüfen und zu sehen, welche Dateien nicht verfolgt sind.

git status

git status, um den aktuellen Zustand des Repositorys zu überprüfen. Bild von Autor.

Schritt 2: Vorschau was entfernt wird

Vor der Ausführung eines Löschbefehls verwende git clean -n, um eine Vorschau dessen zu sehen, was gelöscht wird.

git clean -n

git clean -n, um anzuzeigen, was gelöscht wird. Bild von Autor.

Schritt 3: Entferne nicht verfolgte Dateien

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

git clean -f

Nicht verfolgte Änderungen mit git clean -f entfernen. Bild von Autor.

Schritt 4: Entferne nicht verfolgte Verzeichnisse

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

git clean -fd

Entfernen Sie nicht verfolgte Verzeichnisse mit git clean -fd. Bild von Autor.

Schritt 5: Ignorierte Dateien entfernen

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

git clean -fx

Schritt 6: Verwenden Sie den interaktiven Modus für selektive Bereinigung

Für mehr Kontrolle sollten Sie in Betracht ziehen, git clean -i für interaktive Entfernung zu nutzen. Dieser Modus ermöglicht es Ihnen, individuell auszuwählen, welche Dateien gelöscht werden sollen.

Git clean -i

git clean -i interaktiver Modus für selektive Bereinigung. Bild von Autor.

git clean vs. Andere Git-Befehle

Der Befehl git clean wird oft mit anderen Git-Befehlen verglichen, die Dateien ändern oder zurücksetzen. Die Tabelle unten hebt die Hauptunterschiede hervor:

Command Function
git clean Entfernt nicht verfolgte Dateien und Verzeichnisse dauerhaft.
git reset Setzt verfolgte Dateien auf einen früheren Zustand zurück und betrifft gestagete und übermittelte Änderungen.
git checkout (oder git restore) Verwirft Änderungen in verfolgten Dateien, entfernt sie jedoch nicht.
git stash Speichert sowohl verfolgte als auch nicht verfolgte Änderungen vorübergehend für späteren Gebrauch.

Best Practices für Git Clean

Um git clean sicher und effektiv zu verwenden, befolgen Sie diese bewährten Verfahren:

  • Verwenden von Trockenläufen (-n) vor dem Löschen: Verwenden Sie immer die Option git clean -n, um einen Trockenlauf durchzuführen, bevor Sie git clean ausführen. Dadurch können Sie eine Vorschau der zu löschenden Dateien anzeigen, ohne sie tatsächlich zu löschen.

  • Achten Sie auf ignorierte Dateien: Seien Sie vorsichtig bei der Verwendung von git clean mit der Option -x, die ignorierte Dateien löscht. Dadurch können wichtige Konfigurationsdateien gelöscht werden, die in der Datei .gitignore aufgeführt sind. Wenn Sie ignorierte Dateien entfernen müssen, verwenden Sie den Befehl git clean -fx.

  • Kombinieren Sie mit Git Reset für eine vollständige Bereinigung: Um Ihr Repository vollständig zurückzusetzen, kombinieren Sie git reset mit git clean, wobei git reset --hard die verfolgten Dateien auf ihren zuletzt übermittelten Zustand zurücksetzt und git clean -fd nicht verfolgte Dateien und Verzeichnisse entfernt.

  • Verwenden Sie den interaktiven Modus (-i) für sicherere Löschvorgänge: Verwenden Sie stattdessen den interaktiven Modus (git clean -i), um Dateien zu überprüfen und auszuwählen, die gelöscht werden sollen.

Potentielle Risiken und Vorsichtsmaßnahmen

Die Verwendung von git clean kann riskant sein, wenn sie nicht sorgfältig durchgeführt wird, da sie Dateien dauerhaft löscht, ohne sie irgendwo zu speichern. Hier sind einige wichtige Risiken und Vorsichtsmaßnahmen, die zu beachten sind:

  • Dateien werden dauerhaft gelöscht: Im Gegensatz zu git stash, das Änderungen vorübergehend speichert, löscht git clean unverfolgte Dateien und Verzeichnisse dauerhaft. Einmal entfernt, können diese Dateien nicht über Git wiederhergestellt werden. Wenn Sie die Dateien später möglicherweise benötigen, sollten Sie sie vor Ausführung des Befehls git clean zwischenspeichern oder sichern.

  • Seien Sie vorsichtig mit der -x Option: Die Verwendung von git clean-fx entfernt ignorierte Dateien, zu denen wichtige Konfigurationsdateien gehören können, die in .gitignore aufgeführt sind, oder Abhängigkeitscaches wie node_modules/ und venv/. Ein versehentliches Entfernen dieser Dateien kann den Build oder Entwicklungsumgebungen beeinträchtigen, daher sollten Sie diese Option nur bei Bedarf verwenden.

  • Führen Sie zuerst einen Trockendurchlauf durch: Führen Sie immer einen Trockendurchlauf mit git clean -n durch, bevor Sie git clean -f ausführen. Dieser Schritt ermöglicht es Ihnen, eine Vorschau der zu löschenden Dateien anzuzeigen, was Ihnen hilft, ein versehentliches Entfernen wichtiger Dateien zu vermeiden

  • Alternative Ansätze: In einigen Szenarien kann die Verwendung von git stash eine bessere Option sein als git clean. Der Befehl git stash -u lagert nicht verfolgte Dateien ein und schließt ignorierte Dateien für eine spätere Wiederherstellung aus, und der Befehl git stash pop stellt die eingelegten Änderungen bei Bedarf wieder her. Diese Methode ist nützlich, wenn Sie zwischen Branches wechseln müssen oder Ihren Arbeitsbereich aufräumen, ohne Änderungen dauerhaft zu verlieren.

Conclusion

Ein gut gepflegter Code zeigt Aufmerksamkeit zum Detail, Effizienz und die Fähigkeit, digitale Assets verantwortungsbewusst zu verwalten. Arbeitgeber suchen nach Entwicklern, die bewährte Praktiken wie die Verwendung von git clean -n vor dem Löschen von Dateien, Vorsicht im Umgang mit ignorierten Dateien unter Verwendung von -x und die Nutzung sicherer Alternativen wie git stash verstehen.

Das Absolvieren von DataCamp-Kursen ist nicht nur eine großartige Möglichkeit zu lernen, sondern auch eine großartige Möglichkeit, Arbeitgebern zu signalisieren, dass Sie die Softwareentwicklung ernst nehmen. Zu diesem Zweck empfehle ich, den Blogbeitrag Top 20 Git Interview Questions and Answers for All Levels zu studieren und unseren neuen Git Fundamentals Skill-Track zu absolvieren, um ein Experte in allen Git-bezogenen Themen zu werden.

Source:
https://www.datacamp.com/tutorial/git-clean