git-clean - Nicht verfolgte Dateien aus dem Arbeitsbaum entfernen
Synopse
git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>…
Beschreibung
Bereinigt den Arbeitsbaum durch rekursives Entfernen von Dateien, die nicht unter Versionskontrolle stehen, ausgehend vom aktuellen Verzeichnis .
Normalerweise werden nur Dateien entfernt, die Git unbekannt sind, aber wenn die -x
angegeben ist, werden auch ignorierte Dateien entfernt. Dies kann z. B. nützlich sein, um alle Build-Produkte zu entfernen.
Wenn eine optionale <path>...
Argumente angegeben werden, sind nur diese Pfade betroffen.
Schritt 1 besteht darin, zu zeigen, was gelöscht werden soll, indem man die -n
Option:
# Print out the list of files and directories which will be removed (dry run)
git clean -n -d
Sauberer Schritt - Achtung: dies löscht Dateien :
# Delete the files from the repository
git clean -f
- Um Verzeichnisse zu entfernen, führen Sie
git clean -f -d
o git clean -fd
- Um ignorierte Dateien zu entfernen, führen Sie
git clean -f -X
o git clean -fX
- Um ignorierte und nicht-ignorierte Dateien zu entfernen, führen Sie
git clean -f -x
o git clean -fx
Hinweis der Fallunterschied auf der X
für die beiden letztgenannten Befehle.
Si clean.requireForce
in Ihrer Konfiguration auf "true" (Standard) gesetzt ist, müssen Sie angeben -f
sonst wird tatsächlich nichts passieren.
Siehe wiederum die git-clean
Dokumentationen für weitere Informationen.
Optionen
-f
, --force
Wenn die Git-Konfigurationsvariable clean.requireForce nicht auf false gesetzt ist, weigert sich git clean, ausgeführt zu werden, es sei denn, die Variable -f
, -n
o -i
.
-x
Verwenden Sie nicht die Standard-Ignore-Regeln, die aus .gitignore (pro Verzeichnis) und $GIT_DIR/info/exclude
aber verwenden Sie trotzdem die Ignorierfunktion Regeln, die mit -e
Optionen. Dies ermöglicht das Entfernen aller nicht getrackten Dateien, einschließlich der Build-Produkte. Dies kann verwendet werden (möglicherweise in Verbindung mit mit git reset) verwendet werden, um ein unberührtes Arbeitsverzeichnis zum Testen eines sauberen Build zu testen.
-X
Entfernen Sie nur Dateien, die von Git ignoriert werden. Dies kann nützlich sein, um alles neu zu erstellen alles von Grund auf neu zu erstellen, aber manuell erstellte Dateien zu behalten.
-n
, --dry-run
Entfernen Sie nicht wirklich etwas, sondern zeigen Sie nur, was getan werden würde.
-d
Entfernen Sie nicht verfolgte Verzeichnisse zusätzlich zu den nicht verfolgten Dateien. Wenn ein nicht nachverfolgte Verzeichnis von einem anderen Git-Repository verwaltet wird, wird es standardmäßig nicht entfernt. verwenden -f
Option zweimal, wenn Sie wirklich wollen ein solches Verzeichnis entfernen wollen.
104 Stimmen
Dieser interaktive Git-Spickzettel ndpsoftware.com/git-cheatsheet.html zeigt den Git-Arbeitsbereich (Google liefert mit "Arbeitsbereich" bessere Ergebnisse als mit "Arbeitskopie").
38 Stimmen
Hinweis: Wenn Sie nur die algunos nicht verfolgte Dateien, aber nicht alle von ihnen ,
git clean
hat jetzt eine interaktiv Modus! Siehe meine Antwort auf diese andere Frage : git 1.8.4+0 Stimmen
Bevor Sie eine neue Antwort schreiben, bedenken Sie, dass es bereits mehr als 25 Antworten auf diese Frage gibt. Vergewissern Sie sich, dass Ihre Antwort einen Beitrag leistet, der nicht in den vorhandenen Antworten enthalten ist
9 Stimmen
Zum Verständnis für Uneingeweihte und Git-Neulinge: Führen Sie git status aus, und wenn es eine Datei als untracked anzeigt und Sie diese Datei nicht im Repo haben wollen, können Sie sie einfach in Ihrem Dateisystem löschen oder verschieben. Dies schadet weder Ihrem lokalen Projektarchiv noch Git. Sie können auch
git clean
oder einige Variationen der folgenden Antworten, einschließlich der interaktiven Version, um nur bestimmte Dateien zu löschen, aber der interaktive Modus kann mühsam sein. Was auch immer Sie tun, stellen Sie sicher, dass Sie verstehen, wasgit clean
löschen oder verwenden--dry-run
um Ihnen dies mitzuteilen, ohne etwas zu löschen.6 Stimmen
Wenn die Dateien noch nicht nachverfolgt werden, könnten Sie sie dann nicht einfach ohne Git entfernen?
rm files-to-be-deleted