Wie lösche ich lokale (nicht nachverfolgte) Dateien aus dem aktuellen Git-Arbeitsbaum?

So entfernen Sie nicht benötigte lokale Dateien aus dem aktuellen Arbeitsbaum

6113
14 сент. Schreibgeschützt 14 Sep. 2008-09-14 12:06 08 um 12:06 Uhr 2008-09-14 12:06 Uhr
@ 36 Antworten
  • 1
  • 2

Laut der git clean Dokumentation

Löschen Sie nicht benötigte Dateien aus dem Arbeitsbaum


Schritt 1 - zeigen, was mit dem Parameter -n wird:

 git clean -n 

Sauberer Schritt - Achtung: Dadurch werden die Dateien gelöscht :

 git clean -f 
  • Um Verzeichnisse zu entfernen, führen Sie git clean -f -d oder git clean -fd
  • Um ignorierte Dateien zu entfernen, führen Sie git clean -f -X oder git clean -fX
  • Um ignorierte und nicht ignorierte Dateien zu entfernen, führen Sie git clean -f -X oder git clean -fX

Beachten Sie den Unterschied bei den Ereignissen auf X für die letzten beiden Teams.

Wenn clean.requireForce in Ihrer Konfiguration auf "true" (Standardeinstellung) gesetzt ist, müssen Sie -f angeben. Andernfalls geschieht nichts.

Sehen Sie sich die git-clean Dokumentation erneut an, um weitere Informationen zu erhalten.

Funktionen

-f

- Stärke

Wenn die Konfigurationsvariable Git clean.requireForce nicht auf false gesetzt ist, kann Git clean nicht gestartet werden, es sei denn, -f, -n oder -i wird angegeben.

-x

Verwenden Sie nicht die Standard-Ignorierregeln, die von .gitignore (für jedes Verzeichnis) und $ GIT_DIR / info / exclude gelesen werden. Verwenden Sie jedoch die mit den Optionen -e angegebenen Ignorierregeln. Auf diese Weise können Sie alle nicht verarbeiteten Dateien löschen, einschließlich der Zusammenstellung von Produkten. Dies kann (möglicherweise in Verbindung mit Git reset) verwendet werden, um ein intaktes Arbeitsverzeichnis zu erstellen, um nach einem sauberen Build zu suchen.

-X

Löschen Sie nur Dateien, die von Git ignoriert werden. Dies kann nützlich sein, um alles von Grund auf wiederherzustellen, aber manuell erstellte Dateien zu speichern.

-n

- trocken

Löschen Sie in der Tat nichts, sondern zeigen Sie nur, was gemacht wird.

-d

Löschen Sie nicht benötigte Verzeichnisse zusätzlich zu den Rohdateien. Wenn ein nicht signiertes Verzeichnis von einem anderen Git-Repository verwaltet wird, wird es standardmäßig nicht gelöscht. Verwenden Sie die Option -f zweimal, wenn Sie ein solches Verzeichnis wirklich entfernen möchten.

7973
15 сент. Antwort von Andreas Ericsson 15. September 2008-09-15 20:32 08 um 20:32 Uhr 2008-09-15 20:32

Verwenden Sie git clean -f -d um sicherzustellen, dass auch Verzeichnisse gelöscht werden.

border=0

Dann können Sie überprüfen, ob Ihre Dateien wirklich den git status durchlaufen git status .

866
26 мая '09 в 23:59 2009-05-26 23:59 Die Antwort gibt robert.berger am 26. Mai 09 um 23:59 2009-05-26 23:59

Ich bin überrascht, dass das noch nie erwähnt wurde:

 git clean -i 

Dies bedeutet Interaktivität und Sie erhalten einen kurzen Überblick über das, was entfernt werden soll. Dadurch haben Sie die Möglichkeit, betroffene Dateien ein- oder auszuschließen. Im Allgemeinen ist es noch schneller als der obligatorische --dry-run vor der eigentlichen Reinigung.

Sie müssen in -d werfen, wenn Sie sich auch um leere Ordner kümmern möchten. Am Ende macht er ein gutes Pseudonym:

 git iclean 

Daher kann die zusätzliche manuelle Implementierung interaktiver Befehle für fortgeschrittene Benutzer müde werden. git clean -fd ich einfach das schon erwähnte git clean -fd

427
30 дек. Die Antwort wird von SystematicFrank 30. Dezember gegeben. 2013-12-30 23:12 '14 um 11:12 2013-12-30 23:12
388
14 сент. Die Antwort wird von Fire Lancer am 14. September gegeben. 2008-09-14 12:09 08 um 12:09 2008-09-14 12:09

Wenn das untracked-Verzeichnis Ihr eigenes git-Repository ist (beispielsweise ein Untermodul), müssen Sie -f zweimal verwenden:

git clean -d -f -f

213
25 янв. Antwort von Michał Szajbe am 25. Januar 2013-01-25 15:24 '13 am 15:24 2013-01-25 15:24

Unkomplizierte Dateien können einfach gelöscht werden

Um alle nicht protokollierten Dateien zu löschen, können Sie zunächst alle Dateien hinzufügen und das Repository zurücksetzen (siehe unten).

 git add --all git reset --hard HEAD 

156
03 июня '16 в 15:16 2016-06-03 15:16 Die Antwort wird von Thanga am 3. Juni 2016 um 15:16 Uhr 2016-06-03 15:16 gegeben

Ich mag git stash push -u weil man sie alle mit git stash pop abbrechen kann.

BEARBEITEN: Ich habe auch eine Möglichkeit gefunden, eine nicht nachverfolgbare Datei im Cache anzuzeigen (z. B. git show stash@{0}^3 ). spravaw.site.site/questions/507 / ...

EDIT2: git stash save wird zugunsten von push empfohlen. Danke @ Skript Wolf.

121
11 янв. Hiroshi antwortete am 11. Januar 2014-01-11 03:41 '14 am 3:41 2014-01-11 03:41

Das verwende ich immer:

 git clean -fdx 

Bei einem sehr großen Projekt können Sie es mehrmals ausführen.

98
25 нояб. Die Antwort gibt Oscar Fraxedas am 25. November. 2013-11-25 17:16 13 um 17:16 2013-11-25 17:16

git-clean ist was Sie suchen. Es wird verwendet, um nicht verarbeitete Dateien aus dem Arbeitsbaum zu entfernen.

83
14 сент. Die Antwort ist Espo 14 Sep. gegeben. 2008-09-14 12:08 08 um 12:08 2008-09-14 12:08

Wenn Sie nicht signierte Dateien aus einem bestimmten Unterverzeichnis entfernen möchten,

 git clean -f {dir_path} 

Und eine kombinierte Möglichkeit, nicht reproduzierbare Dateien und ignorierte Dateien zu entfernen.

 git clean -fxd {dir_path} 

git status ändern Sie nur Dateien im git status .

73
24 сент. Die Antwort ist Vijay C 24 sep gegeben. 2013-09-24 09:28 '13 am 9:28 2013-09-24 09:28

git clean -fd löscht das Verzeichnis

git clean -fX entfernt ignorierte Dateien

git clean -fX entfernt ignorierte und nicht ignorierte Dateien

Sie können alle oben genannten Optionen in Kombination verwenden

git clean -fdXx

Weitere Informationen finden Sie im Git-Handbuch.

48
22 янв. Die Antwort wird Pooja am 22. Januar gegeben 2015-01-22 09:33 '15 am 9:33 2015-01-22 09:33

Löschen Sie alle nicht benötigten Ordner und Dateien in diesen Repo + Submodulen

Dies bringt Sie in den gleichen Zustand wie ein frischer Klon.

 git clean -ffdx 

Löschen Sie alle zusätzlichen Ordner und Dateien in diesem Repo, jedoch nicht dessen Submodule.

 git clean -fdx 

Löschen Sie nur zusätzliche Ordner, aber keine Dateien (z. B. den Build-Ordner).

 git clean -fd 

Löschen Sie unnötige Ordner + fehlende Dateien (aber keine neuen Dateien)

Wenn die Datei nicht ignoriert und noch nicht registriert wurde, bleibt sie erhalten. Beachten Sie die Hauptstadt X.

 git clean -fdX 

Neuer interaktiver Modus

 git clean 
37
12 февр. Die Antwort wird am 12. Februar von Shital Shah gegeben . 2017-02-12 11:33 '17 um 11:33 2017-02-12 11:33

OK, das Entfernen nicht mehr benötigter Dateien und Ordner ist einfach. Verwenden Sie git in der Befehlszeile. Gehen Sie dazu folgendermaßen vor:

 git clean -fd 

Bevor Sie dies tun, sollten Sie dies noch einmal überprüfen , da Dateien und Ordner gelöscht werden, ohne dass ein Protokoll erstellt wird.

-f steht auch in diesem Fall für force und -d für directory ...

Wenn Sie nur Dateien löschen möchten, können Sie nur -f :

 git clean -f 

Wenn Sie (Verzeichnisse) und Dateien löschen möchten, können Sie nur nicht überwachte Verzeichnisse und Dateien löschen. Beispiel:

 git clean -fd 

Sie können auch das Flag -x verwenden, um Dateien einzuschließen, die von git ignoriert werden. Dies ist nützlich, wenn Sie alles löschen möchten.

Wenn Sie das Flag -i hinzufügen, fordert git die Berechtigung an, Dateien einzeln zu löschen.

Wenn Sie sich nicht sicher sind und zunächst alles überprüfen möchten, fügen Sie das Flag -n .

Verwenden Sie -q wenn nach dem erfolgreichen Löschen kein Bericht angezeigt werden soll.

Ich mache auch ein Bild, um es unvergesslicher zu machen, vor allem habe ich gesehen, wie viele Leute -f mit dem Aufräumen eines Ordners verwechseln oder irgendwie verwirren!


2019

20 июля '17 в 19:42 2017-07-20 19:42 Die Antwort wird von Alireza am 20. Juli 17 um 19:42 2017-07-20 19:42 gegeben

Am besten verwendet: git clean

 git clean -d -x -f 

Dadurch werden nicht benötigte Dateien entfernt, einschließlich Verzeichnisse (-d) und Dateien, die von git (-x) ignoriert werden.

Ersetzen Sie auch das Argument -f durch -n , um den interaktiven Testmodus oder -i auszuführen, und es wird Ihnen mitgeteilt, was entfernt wird.

32
16 апр. Die Antwort ist gegeben Chhabilal 16 April. 2015-04-16 09:49 '15 um 9:49 2015-04-16 09:49

Benutzerinteraktiver Ansatz:

 git clean -i -fd Remove .classpath [y/N]? N Remove .gitignore [y/N]? N Remove .project [y/N]? N Remove .settings/ [y/N]? N Remove src/com/arsdumpgenerator/inspector/ [y/N]? y Remove src/com/arsdumpgenerator/manifest/ [y/N]? y Remove src/com/arsdumpgenerator/s3/ [y/N]? y Remove tst/com/arsdumpgenerator/manifest/ [y/N]? y Remove tst/com/arsdumpgenerator/s3/ [y/N]? y 

-i für interaktive
-f für die Stärke
-d für das Verzeichnis
-x für ignorierte Dateien (ggf. hinzufügen)

Hinweis: Fügen Sie -n oder - dry hinzu, um nur zu prüfen, was getan wird.

20
02 марта '17 в 23:09 2017-03-02 23:09 Die Antwort ist gegeben bit_cracker007 02. März 17 um 23:09 2017-03-02 23:09

Für mich nur nach der Arbeit:

 git clean -ffdx 

In allen anderen Fällen erhielt ich für einige Unterverzeichnisse die Meldung "Überspringverzeichnis".

15
16 авг. die antwort ist gegeben rahul286 16 aug. 2016-08-16 18:29 '16 um 18:29 Uhr 2016-08-16 18:29

git clean -f -d -x $(git rev-parse --show-cdup) wird ausschließlich für das Stammverzeichnis verwendet, unabhängig davon, wo Sie es in der Verzeichnisstruktur des Repositorys aufrufen. Ich verwende es ständig, da es nicht zwingt, den Ordner zu verlassen, in dem Sie gerade arbeiten, und es Ihnen ermöglicht, das Recht an dem Ort, an dem Sie sich befinden, zu löschen und zu reparieren.

Stellen Sie sicher, dass die Flags -f , -d , -x Ihren Anforderungen entsprechen:

 -d Remove untracked directories in addition to untracked files. If an untracked directory is managed by a different Git repository, it is not removed by default. Use -f option twice if you really want to remove such a directory. -f, --force If the Git configuration variable clean.requireForce is not set to false, git clean will refuse to delete files or directories unless given -f, -n or -i. Git will refuse to delete directories with .git sub directory or file unless a second -f is given. This affects also git submodules where the storage area of the removed submodule under .git/modules/ is not removed until -f is given twice. -x Don't use the standard ignore rules read from .gitignore (per directory) and $GIT_DIR/info/exclude, but do still use the ignore rules given with -e options. This allows removing all untracked files, including build products. This can be used (possibly in conjunction with git reset) to create a pristine working directory to test a clean build. 

Es gibt noch andere Flaggen. Wählen Sie einfach git clean --help .

15
02 дек. Die Antwort wird von Nikita Leonov 02 Dez. Gegeben 2015-12-02 20:57 '15 um 20:57 2015-12-02 20:57

Wenn Sie nur die Dateien löschen möchten, die nicht durch 'git status' geprüft wurden

 git stash save -u git stash drop "stash@{0}" 

Ich bevorzuge dieses "git clean", da "git clean" die Dateien entfernt, die von git ignoriert werden. Daher muss Ihr nächster Build alles neu erstellen und Sie können auch die IDE-Einstellungen verlieren.

13
02 марта '16 в 5:09 2016-03-02 05:09 Die Antwort ist gegeben jazzdev 02 März '16 um 5:09 2016-03-02 05:09

Lebensfähigkeit für eine solche Situation, die ich gerade erfunden und ausprobiert habe (was großartig funktioniert):

 git add . git reset --hard HEAD 
Vorsicht! Stellen Sie sicher, dass Sie alle erforderlichen Änderungen (auch in unauffälligen Dateien) kopieren, bevor Sie dies tun .
13
21 февр. die Antwort wird an thybzi gegeben 21. Feb. 2016-02-21 20:29 '16 um 20:29 Uhr 2016-02-21 20:29

Um herauszufinden, was vor der eigentlichen Entfernung gelöscht wird:

git clean -d -n

Es wird etwas ausgegeben wie:

Entfernt sample.txt

So entfernen Sie alles, was in der Ausgabe des vorherigen Befehls aufgeführt ist:

git clean -d -f

Es wird etwas ausgegeben wie:

Deinstallieren Sie sample.txt

10
16 февр. Die Antwort wird von Omar Mowafi am 16. Februar gegeben. 2016-02-16 11:42 '16 am 11:42 2016-02-16 11:42

Um nicht verwendete Dateien zu löschen, müssen Sie zuerst den Befehl verwenden, um die Dateien anzuzeigen, die von der Bereinigung betroffen sind.

 git clean -fdn 

Daraufhin wird die Liste der zu löschenden Dateien angezeigt. Um diese Dateien tatsächlich zu löschen, verwenden Sie den folgenden Befehl:

 git clean -fd 
8
25 окт. Antwort von Gaurav 25. Oktober. 2016-10-25 12:09 '16 am 12:09 pm 2016-10-25 12:09

Jemand sollte wirklich erwähnen:

 git clean [<options>] 

Ich Recht?

7
27 авг. Antwort von joeytwiddle 27 Aug. 2015-08-27 13:18 '15 um 13:18 Uhr 2015-08-27 13:18 Uhr

Seien Sie vorsichtig, wenn Sie den Befehl "git clean" ausführen.

Verwenden Sie immer -n bevor Sie den eigentlichen Befehl ausführen, um -n , welche Dateien gelöscht werden.

 git clean -n -d git clean -f -d 

Standardmäßig löscht git clean nur nicht verwendete Dateien, die nicht ignoriert werden. Dateien, die dem Muster in .gitignore oder anderen Ignorier-Dateien entsprechen, werden nicht gelöscht. Wenn Sie diese Dateien auch löschen möchten, können Sie den Befehl -x zu einem Bereinigungsbefehl hinzufügen.

 git clean -f -d -x 

Es gibt auch einen -i interaktiven Modus mit einem sauberen Befehl.

 git clean -x -i 

Alternativ

Wenn Sie nicht hundertprozentig sicher sind, dass das Löschen Ihrer unvollständigen Arbeit sicher ist, können Sie stattdessen Stashing verwenden.

 git stash --all 

Es löscht auch Ihr Verzeichnis, gibt Ihnen jedoch die Flexibilität, Dateien jederzeit mithilfe von Stash mit Apply oder Pop zu extrahieren. Zu einem späteren Zeitpunkt können Sie den Cache löschen, indem Sie Folgendes verwenden:

 git stash drop // or clean 
6
22 окт. Antwort DevWL 22. Oktober 2017-10-22 00:44 '17 am 0:44 2017-10-22 00:44

git clean -f to remove untracked files from working directory.

Ich habe hier in meinem Blog einige Grundlagen behandelt, git-intro-basic-befehle

5
16 февр. die antwort wird mit ysk 16 feb gegeben . 2017-02-16 12:05 '17 am 12:05 2017-02-16 12:05

Wir können lokale, nicht nachverfolgte Dateien mit den unten angegebenen git-Kommentaren problemlos aus dem aktuellen Git-Arbeitsbaum entfernen.

 git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>] 

Beispiel:

 git reset --hard HEAD 

Referenzen:

  1. https://git-scm.com/docs/git-reset
  2. Wie verwende ich 'git reset --hard HEAD', um zum vorherigen Commit zurückzukehren?
  3. Setzen Sie den lokalen Repository-Zweig zurück, sodass er wie das Remote-Repository HEAD aussieht
  4. https://jwiegley.github.io/git-von-the-bottom-up/3-Reset/4-doing-a-hard-reset.html
5

Befehl Löschen Sie Rohdateien aus git docs git clean

git clean - entfernt defekte Dateien aus dem Arbeitsbaum

Vorgeschlagene Methode: Interaktionsmodus mit git clean -i damit wir es steuern können. Schauen Sie sich die verbleibenden verfügbaren Optionen an.

Verfügbare Optionen:

 git clean -d -f -i -n -q -e -x -X (can use either) 

Erklärung:

1. -d

Löschen Sie nicht benötigte Verzeichnisse zusätzlich zu den Rohdateien. Wenn ein nicht signiertes Verzeichnis von einem anderen git-Repository verwaltet wird, wird es standardmäßig nicht gelöscht. Verwenden Sie die Option -f zweimal, wenn Sie ein solches Verzeichnis wirklich entfernen möchten.

2. -f, --force

Wenn die Konfigurationsvariable git clean.requireForce nicht auf false festgelegt ist, lehnt git clean den Start ab, sofern nicht -f, -n oder -i angegeben wird.

3. -i, --interaktiv

Zeigen Sie, was gemacht wird, und löschen Sie die Dateien online. Einzelheiten finden Sie unter "Interaktiver Modus".

4. -n, - dry-run

Löschen Sie in der Tat nichts, sondern zeigen Sie nur, was gemacht wird.

5. -q, --ruhe

Seien Sie ruhig, melden Sie einfach Fehler, löschen Sie jedoch keine Dateien.

6. -e, --exclude =

Berücksichtigen Sie zusätzlich zu denen, die in .gitignore (für jedes Verzeichnis) und $ GIT_DIR / info / exclude zu finden sind, diese Muster in dem Satz gültiger Ignorierregeln.

7. -x

Verwenden Sie nicht die Standard-Ignorierregeln, die von .gitignore (für jedes Verzeichnis) und $ GIT_DIR / info / exclude gelesen werden. Verwenden Sie jedoch die mit den Optionen -e angegebenen Ignorierregeln. Auf diese Weise können Sie alle nicht verarbeiteten Dateien löschen, einschließlich der Zusammenstellung von Produkten. Dies kann (möglicherweise in Verbindung mit git reset) verwendet werden, um ein unberührtes Arbeitsverzeichnis zu erstellen, um nach einem sauberen Build zu suchen.

8. -X

Löschen Sie nur Dateien, die von Git ignoriert werden. Dies kann nützlich sein, um alles von Grund auf wiederherzustellen, aber manuell erstellte Dateien zu speichern.

01 сент. Antwort von Mohideen ibn Mohammed am 1. September 2017-09-01 09:23 '17 um 09:23 Uhr 2017-09-01 09:23

Der übliche Befehl git clean entfernt nicht verwendete Dateien mit git version 2.9.0.windows.1 .

 $ git clean -fdx # doesn't remove untracked files $ git clean -fdx * # Append star then it works! 
5
11 окт. die antwort ist kujiy 11 oct. 2016-10-11 03:14 '16 am 3:14 2016-10-11 03:14

Löschen Sie das Git-Repository und alle Submodule rekursiv

Der folgende Befehl löscht das aktuelle git-Repository und alle seine Untermodule rekursiv:

 (git clean -d -x -f  git submodule foreach --recursive git clean -d -x -f) 
3
25 сент. Die Antwort wird Sergey 25 Sep gegeben. 2017-09-25 19:25 '17 um 19:25 Uhr 2017-09-25 19:25

oh-my-zsh mit zsh stellt diese exzellenten Aliase über das Git-Plugin bereit. Sie können auch in bash verwendet werden.

gclean='git clean -fd'
gpristine='git reset --hard git clean -dfx'

  • gclean entfernt nicht gclean Verzeichnisse zusätzlich zu nicht nachverfolgten Dateien.
  • gpristine lokale Änderungen fest, entfernt nicht protokollierte Verzeichnisse und nicht protokollierte Dateien und verwendet keine standardmäßigen Ignorierregeln, die von .gitignore (für jedes Verzeichnis) und $ GIT_DIR / info / exclude gelesen werden, verwendet jedoch immer noch die mit der Option -e gesetzten Ignorierregeln. Auf diese Weise können Sie alle nicht aufgespürten Dateien einschließlich der Build-Produkte löschen. Dies kann (möglicherweise in Kombination mit git reset) zum Erstellen des primären Arbeitsverzeichnisses zum Testen eines Clean Builds verwendet werden.
3
02 нояб. Die Antwort wird gegeben ZenLulz 02 Nov. 2017-11-02 11:24 '17 um 11:24 2017-11-02 11:24
 git clean -f 

entfernt untracked Dateien vom aktuellen Git

 git clean -fd 

Wenn Sie Verzeichnisse und Dateien löschen möchten, werden nur nicht verfolgte Verzeichnisse und Dateien gelöscht.

1
18 мая '18 в 9:04 2018-05-18 09:04 Die Antwort wird von Sudhir Vishwakarma am 18. Mai 18 um 9:04 2018-05-18 09:04 gegeben
  • 1
  • 2

Weitere Fragen zu oder Frage stellen