Git: Wie lösche ich alle nicht verfolgten Dateien?


40

Ich benutze Git für die Versionskontrolle. Jetzt möchte ich auf meinem lokalen Rechner alle Dateien im Repository löschen, die nicht nachverfolgt werden.

ich kann nutzen

git status

um diese Dateien aufzulisten, aber wie kann ich alle löschen?


1
Können Sie nicht einfach alle Dateien an einem anderen Ort auf Ihrem Computer auschecken und dann die alte Version löschen?
Nifle

1
Sicher kann ich, aber gibt es keinen einfacheren Weg?
RoflcoptrException

Antworten:


55

Wenn Sie es ignorieren, verwenden Sie git clean -xf. Sie können dies git clean -dfaber auch tun , um nicht verfolgte Verzeichnisse zu entfernen. Verwenden Sie -nfür einen Trockenlauf.

Siehe Aufräumen ohne Verfolgung


3
-x ignoriert die ignoriert ..
UpAndAdam

8
-xflöscht und ignoriert die Dateien und das ist wahrscheinlich NICHT was du willst. Verwenden -nfund vorsichtig vorgehen. Siehe: stackoverflow.com/questions/61212/…
Mr_and_Mrs_D

2
Denken Sie daran, dies kann Ihre Umgebung / IDE-Ordner entfernen (zB .vagrant oder .idea (phpstorm))
timhc22

1
ACHTUNG! gitignored Dateien werden für immer gelöscht. -100
26.

5
Git sauber -f

8
Es kann sinnvoll sein, die Bedeutung dieses Befehls hinzuzufügen, um diese Antwort in sich geschlossen zu machen.
NN

5

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/amazon/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/amazon/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/amazon/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/amazon/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/amazon/arsdumpgenerator/s3/ [y/N]? y

-i für interaktive
-f für Datei
-d für Verzeichnis

Hinweis: In -n oder --dry geführten nur überprüfen , was es tun wird.


3

git clean -fGegenüber nicht nachverfolgten Dateien und Verzeichnissen ist eine Feinfühligkeit zu erwähnen . Wenn Sie ein nicht verfolgtes Verzeichnis haben, das Dateien enthält, die erst recht nicht verfolgt wurden, git clean -fwerden diese nicht verfolgten Dateien NICHT gelöscht.

Mit anderen Worten, es ist NICHT immer der Fall, dass git clean -falle nicht verfolgten Dateien gelöscht werden. Eine bessere Erklärung git clean -fist, dass alle nicht verfolgten Dateien gelöscht werden, die sich nicht in nicht verfolgten Verzeichnissen befinden.

git clean -f -d muss verwendet werden, um nicht verfolgte Dateien zu löschen, die sich in nicht verfolgten Verzeichnissen befinden, und es scheint keine Möglichkeit zu geben, alle nicht verfolgten Dateien zu löschen, ohne auch nicht verfolgte Verzeichnisse zu löschen , die nur nicht verfolgte Dateien enthalten.

Verwenden Sie git clean -f -d -ndiese Option, um WIRKLICH zu sehen, was Sie tun möchten, um das Arbeitsverzeichnis ohne nicht überwachte Dateien wiederherzustellen. Dann benutze git clean -f -d, um das zu tun.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.