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

306voto

Michał Szajbe Punkte 8541

Wenn das nicht verfolgte Verzeichnis ein eigenes Git-Repository ist (z. B. ein Submodul), müssen Sie -f zweimal:

git clean -d -f -f

7 Stimmen

Übrigens, dies ist geschrieben in Dokumentation : Git weigert sich, Verzeichnisse mit .git Unterverzeichnis oder Datei zu löschen, wenn nicht ein zweites -f angegeben wird. Aber trotzdem vielen Dank!

167voto

Oscar Fraxedas Punkte 4109

Das ist das, was ich immer verwende:

git clean -fdx

Bei einem sehr großen Projekt sollten Sie es vielleicht ein paar Mal durchführen.

0 Stimmen

@Martin Eines der Projekte, an denen ich arbeite, ist über 8 Jahre alt und wird von über 80 Entwicklern aktiv programmiert. Git schafft es manchmal nicht, es beim ersten Durchgang zu bereinigen.

1 Stimmen

Ich kann das bestätigen, also gilt das auch noch 2020. Wir arbeiten auch an einem großen Projekt und ich musste es 4-5 Mal ausführen, bis GIT keine zu löschenden Dateien mehr fand.

162voto

hiroshi Punkte 6401

Ich mag git stash push -u denn Sie können sie alle rückgängig machen mit git stash pop .

EDIT: Ich habe auch eine Möglichkeit gefunden, nicht verfolgte Dateien in einem Stash anzuzeigen (z.B. git show stash@{0}^3 ) https://stackoverflow.com/a/12681856/338986

EDIT2: git stash save ist veraltet zu Gunsten von push . Danke @script-wolf.

3 Stimmen

Können Sie das -u im Versteck erklären? Ich verstehe nicht, wie das anders funktioniert als git stash save. Ich habe dies versucht und es hat funktioniert. Ich habe in den Git Docs nachgeschaut und konnte es dort auch nicht finden.

11 Stimmen

-u ist gleichbedeutend mit --include-untracked . Sie finden eine Hilfe mit git help stash .

3 Stimmen

@hiroshi Danke! Nachdem ich jede verflixte Lösung von einem Dutzend verschiedener Leute ausprobiert habe, ist dies diejenige, die endlich funktioniert hat...puh! Selbst ein Git Stash hat nichts gebracht. Die speichern - u kümmerte sich um untracked. zurücksetzen hart /clean force/etc keiner von ihnen tat etwas für mich.

143voto

DevWL Punkte 14388

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

Verwenden Sie immer -n bevor Sie den eigentlichen Befehl ausführen, da er Ihnen zeigt, welche Dateien entfernt werden.

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

Standardmäßig, git clean entfernt nur nicht verfolgte Dateien, die nicht ignoriert werden. Alle Dateien, die einem Muster in Ihrer .gitignore oder anderen Ignorierdateien entsprechen, werden nicht entfernt. Wenn Sie auch diese Dateien entfernen möchten, können Sie eine -x für den Befehl clean.

git clean -f -d -x

Es ist auch ein interaktiver Modus verfügbar -i mit dem Befehl clean

git clean -x -i

Alternativ dazu

Wenn Sie sich nicht 100%ig sicher sind, dass das Löschen Ihrer nicht gebundenen Arbeit sicher ist, können Sie stattdessen Stashing verwenden

git stash --all

Bevor Sie stash --all Anmerkung: Wenn die --all verwendet wird, dann wird die Option ignorierte Dateien gelagert und gereinigt werden, zusätzlich zu den nicht verfolgte Dateien .

Das Auslagern löscht auch Ihr Verzeichnis, gibt Ihnen aber die Flexibilität, die Dateien zu einem beliebigen Zeitpunkt wieder abzurufen, indem Sie Versteck con anwenden. o pop . Wenn Sie dann mit dem Entfernen Ihrer versteckten Dateien einverstanden sind, können Sie diese ausführen:

git stash drop // or clean

Eine vollständige Anleitung für die Arbeit mit Stash finden Sie hier Wie benennt man in Git einen Stash nach Namen und ruft ihn ab?

2 Stimmen

Der Vorrat ist eine gute Idee, aber Sie sollten vielleicht die git stash save and type some comment as to what this stash was for

0 Stimmen

Ich hatte etwa 20 Bilder, die ich aus verschiedenen Verzeichnissen entfernen wollte, aber git stash --all Tausende von Dateien entfernt und mein Projekt zerstört. Was ist da los? Es hat sogar das Herstellerverzeichnis entfernt. Ich wäre vorsichtig, wenn ich das verwenden würde. Zum Glück tue ich dies in einer lokalen Repo zu Hause und nicht in der Produktion.

0 Stimmen

git stash --all Wird Vendor-Verzeichnis, node_modules, .env und Storage-Dateien in Laravel plus was auch immer sonst habe ich verpasst zu entfernen. Ich musste composer installieren, meine .env-Datei neu erstellen und Cache-Ordner im Storage neu erstellen. Schreckliche Idee, es sei denn, Sie wollen nicht getrackte Dateien plus alles, was in Ihrem .gitignore-Datei zu entfernen

111voto

Espo Punkte 40386

git-clean ist das, wonach Sie suchen. Es wird verwendet, um nicht verfolgte Dateien aus dem Arbeitsbaum zu entfernen.

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