git clean

Beschreibung
Der Befehl git clean wird verwendet, um nicht verfolgte Dateien aus dem Arbeitsverzeichnis zu entfernen. Im Gegensatz zu git reset und git checkout, die auf verfolgten oder bereitgestellten Dateien arbeiten, zielt git clean speziell auf Dateien ab, die noch nicht zum Git-Index hinzugefügt wurden. Nicht verfolgte Dateien sind solche, die innerhalb des Arbeitsverzeichnisses erstellt wurden, aber noch nicht verfolgt werden. Das folgende Beispiel zeigt den Unterschied zwischen verfolgten und nicht verfolgten Dateien:
git clean
mkdir test_directory
cd test_directory/
git init .
#Initialized empty Git repository in /Users/kev/code/test_directory/.git/
echo "tracked file" > ./test_tracked_file
git add ./test_tracked_file
echo "untracked" > ./test_untracked_file
mkdir ./test_untracked_dir && touch ./test_untracked_dir/file
git status
#On branch master
#No commits yet
#Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#new file: test_tracked_file
#Untracked files:
# (use "git add <file>..." to include in what will be committed)
#test_untracked_dir/
#test_untracked_fileAls Ergebnis des obigen Beispiels haben Sie ein neues Git-Repository im Verzeichnis test_directory, das eine test_tracked_file enthält, die dem Git-Index hinzugefügt wurde. Zusätzlich werden eine test_untracked_file sowie ein test_untracked_dir erstellt. Anschließend ruft das Beispiel git status auf, das eine Ausgabe anzeigt, die den internen Zustand der verfolgten und nicht verfolgten Änderungen darstellt. Danach wird der Befehl git clean verwendet, um diese nicht verfolgten Dateien zu entfernen.
Führen Sie git clean noch nicht aus. Das folgende Beispiel zeigt den Fehler, den es standardmäßig erzeugt. Git benötigt eine Force-Option, um git clean auszuführen, damit versehentlicher Datenverlust verhindert wird. Sobald es ausgeführt wurde, können Sie git clean nicht rückgängig machen. Es führt eine harte Löschung im Dateisystem durch. Sie sollten sicherstellen, dass Sie die nicht verfolgten Dateien wirklich löschen möchten, bevor Sie es ausführen.
git clean error
git clean
#fatal: clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to cleanHäufige Optionen und Verwendung
Der Befehl git clean hat verschiedene Verwendungsarten mit unterschiedlichen Optionen.
git clean -n
git clean -nDie Option -n führt einen Dry Run von git clean aus. Sie zeigt die Dateien an, die entfernt werden sollen, löscht sie aber nicht.
git clean -n example
git clean -n
#Would remove test_untracked_fileWie Sie sehen, wird angezeigt, dass die test_untracked_file entfernt wird, wenn der Befehl git clean ausgeführt wird.
git clean -f
git clean -f or --forceDie Option --force ist erforderlich, sofern die Konfigurationsoption clean.requireForce nicht auf false gesetzt ist. Sie löscht nicht verfolgte Dateien aus dem aktuellen Verzeichnis, außer den nicht verfolgten Ordnern oder Dateien, die mit .gitignore angegeben sind.
git clean --force
git clean -f
#Removing test_untracked_fileDie Ausgabe zeigt, dass die test_untracked_file gelöscht wurde. An diesem Punkt zeigt git status an, dass die test_untracked_file gelöscht wurde und nicht gefunden werden kann. Standardmäßig wirkt git clean -f auf alle nicht verfolgten Dateien im aktuellen Verzeichnis. Zusätzlich kann mit der Option -f ein <path>-Wert übergeben werden, um eine bestimmte Datei zu entfernen.
Wenn Sie ein nicht verfolgtes Verzeichnis entfernen möchten, können Sie die Option -d verwenden, die git clean dazu anweist, dies zu tun, da Verzeichnisse standardmäßig ignoriert werden.
git clean -f <path>
git clean -f <path>Sie können auch die Kombination -dn verwenden.
git clean -dn
git clean -dn
#Would remove test_untracked_dir/
git clean -df
#Removing test_untracked_dir/Zuerst wird angezeigt, dass test_untracked_file zur Entfernung ansteht. Dann führen wir eine erzwungene Bereinigung aus und erhalten die Ausgabe, dass test_untracked_dir entfernt wurde.
git clean -x
git clean -xDie Option -x weist git clean an, auch ignorierte Dateien einzubeziehen. Sie sollten zuerst einen „Dry Run“ ausführen, bevor Sie die endgültige Löschung vornehmen. Die Option -x wirkt auf alle ignorierten Dateien. Das könnten unbeabsichtigte Dinge wie ./.idea-IDE-Konfigurationsdateien sein.
git clean -xf
git clean -xfDie Option -x kann zusammen mit anderen Optionen übergeben und kombiniert werden. Das obige Beispiel ist eine Kombination mit -f, die nicht verfolgte Dateien aus dem aktuellen Verzeichnis sowie alle Dateien löscht, die Git normalerweise ignoriert.
Interaktiver Modus
Der Befehl git clean hat einen interaktiven Modus, der durch die Option -i aktiviert wird. Im folgenden Beispiel verwenden wir zusätzlich die Option -d, um auf das test_untracked_dir zu wirken. Nach der Aktivierung des interaktiven Modus wird eine Eingabeaufforderung What now> angezeigt. Diese Aufforderung verlangt, einen Befehl auszuwählen, der auf die nicht verfolgten Dateien angewendet werden soll. Diese Befehle sind 6.
git clean -di
git clean -di
Would remove the following items:
test_untracked_dir/ test_untracked_file
*** Commands ***
1: clean 2: filter by pattern 3: select by numbers 4: ask each 5: quit 6: help
What now>Wir werden uns unten jeden Befehl ansehen.
- Befehl 6 erklärt die anderen Befehle.
git clean steps
What now> 6
clean - start cleaning
filter by pattern - exclude items from deletion
select by numbers - select items to be deleted by numbers
ask each - confirm each deletion (like "rm -i")
quit - stop cleaning
help - this screen
? - help for prompt selection- Befehl 1 löscht die genannten Elemente.
git clean step 1, clean
git clean -di
What now> 1
clean- Die Auswahl von Befehl 2 zeigt eine weitere Eingabeaufforderung zum Filtern der Liste der nicht verfolgten Dateien an.
git clean filter by pattern
git clean -di
What now> 2Nach der Auswahl von Befehl 2 benötigen wir das Platzhaltermuster *_file, das die Liste der nicht verfolgten Dateien auf test_untracked_dir beschränkt.
git clean steps
Would remove the following items:
test_untracked_dir/ test_untracked_file
*** Commands ***
1: clean 2: filter by pattern 3: select by numbers 4: ask each 5: quit 6: help
What now> 2
test_untracked_dir/ test_untracked_file
Input ignore patterns>> *_file
test_untracked_dir/- Wie Befehl 2 dient Befehl 3 dazu, die Liste der Namen nicht verfolgter Dateien weiter einzugrenzen. Die Auswahl dieses Befehls fordert zur Eingabe von Nummern auf, die einem Namen einer nicht verfolgten Datei entsprechen.
git clean select by numbers
git clean -di
What now> 3- Befehl 4 wird für jede nicht verfolgte Datei ausgeführt und zeigt eine Y/N-Abfrage zur Bestätigung der Löschung an.
git clean ask each
git clean -di
What now> 4
*** Commands ***
1: clean 2: filter by pattern 3: select by numbers 4: ask each 5: quit 6: help
What now> 4
Remove test_untracked_dir/ [y/N]? N
Remove test_untracked_file [y/N]? N- Die Auswahl von Befehl 5 beendet die interaktive Sitzung.
git clean quit
git clean -di
What now> 5Practice
What are the functionalities and options of the 'git clean' command?