8129 Stimmen

So entfernen Sie lokale (nicht verfolgte) Dateien aus dem aktuellen Git-Arbeitsbaum

Wie löschen Sie nicht verfolgte lokale Dateien aus Ihrem aktuellen Arbeitsbaum?

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

31voto

bit_cracker007 Punkte 1921

Interaktiver Ansatz für den Benutzer:

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 interaktiv
-f für Kraft
-d für Verzeichnis
-x für ignorierte Dateien (bei Bedarf hinzufügen)

Nota: Añadir -n o --Trockenlauf um zu prüfen, was es tun wird.

27voto

Rajeev Shetty Punkte 1122

So entfernen Sie nicht verfolgte Dateien :

git add .
git reset --hard HEAD

25voto

thybzi Punkte 1183

Für solche Situationen habe ich gerade einen Life-Hack erfunden und ausprobiert (der perfekt funktioniert):

git add .
git reset --hard HEAD

Aufgepasst! Bitte beachten Sie alle erforderlichen Änderungen vornehmen (auch in nicht-verfolgten Dateien) vor der Durchführung dieser .

3 Stimmen

Zumindest ist dies ein anderer Ansatz :) Ein anderer Weg, der die gelöschten Dateien im Reflog, aber nicht in den Zweigen speichern würde, wäre: git add . git commit -m 'about to delete' git reset --hard HEAD~

2 Stimmen

Ein noch schnellerer Weg ist git add . && git reset --hard HEAD

3 Stimmen

git add . && git reset --hard

23voto

rahul286 Punkte 949

Bei mir hat nur Folgendes funktioniert:

git clean -ffdx

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

2 Stimmen

Danke. Ich habe das -x und einfach verwendet git clean -ffd um das Löschen von Dateien in der .gitignore zu vermeiden.

22voto

Nikita Leonov Punkte 5684

git clean -f -d -x $(git rev-parse --show-cdup) wird auf das Stammverzeichnis angewendet, unabhängig davon, wo Sie es innerhalb eines Repository-Verzeichnisbaums aufrufen. Ich verwende es ständig, da es Sie nicht zwingt, den Ordner zu verlassen, in dem Sie gerade arbeiten, und das Bereinigen und Übertragen direkt von dem Ort aus ermöglicht, an dem Sie sich befinden.

Achten Sie darauf, dass die Flaggen -f , -d , -x Ihren Bedürfnissen 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 sind auch andere Flaggen erhältlich, schauen Sie einfach nach git clean --help .

0 Stimmen

BTW können Sie einfach git clean {flags} :/ so wird es sein, als ob Sie den Befehl in der Repo Root ausgeführt

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X