Da keine Antwort die genaue Kombination der Optionen vorschlägt, die ich verwende, hier ist sie:
git clean -dxn . # dry-run to inspect the list of files-to-be-removed
git clean -dxf . # REMOVE ignored/untracked files (in the current directory)
git checkout -- . # ERASE changes in tracked files (in the current directory)
Dies ist der Online-Hilfetext für das verwendete git clean
Optionen:
-d
Entfernen Sie nicht verfolgte Verzeichnisse zusätzlich zu nicht verfolgten Dateien. Wenn ein nicht verfolgtes Verzeichnis von einem anderen Git-Repository verwaltet wird, wird es standardmäßig nicht entfernt. verwenden -f
Option zweimal, wenn Sie ein solches Verzeichnis wirklich entfernen wollen.
-x
Verwenden Sie nicht die Standard-Ignorierregeln, die aus .gitignore
(pro Verzeichnis) und $GIT_DIR/info/exclude
, aber verwenden Sie trotzdem die Ignorierregeln, die mit -e
Optionen. Dies ermöglicht das Entfernen aller nicht verfolgten Dateien, einschließlich der Build-Produkte. Dies kann verwendet werden (möglicherweise in Verbindung mit git reset
), um ein unverfälschtes Arbeitsverzeichnis zum Testen eines sauberen Builds zu erstellen.
-n
Entfernen Sie nicht wirklich etwas, sondern zeigen Sie nur, was gemacht werden würde.
-f
Wenn die Git-Konfigurationsvariable clean.requireForce
ist nicht auf false
wird sich Git clean weigern, Dateien oder Verzeichnisse zu löschen, es sei denn, es wird -f
, -n
, oder -i
. Git verweigert das Löschen von Verzeichnissen innerhalb der .git
Unterverzeichnis oder Datei, es sei denn, ein zweites -f
gegeben ist.
0 Stimmen
Siehe auch stackoverflow.com/questions/22620393/
16 Stimmen
git-clean
entfernt nur die nicht verfolgten Dateien aus dem Arbeitsbaum git-scm.com/docs/git-clean37 Stimmen
Um den obigen Kommentar von Asenar zu verdeutlichen,
git-clean -df
kann gefährlich sein. Es löscht lokale, nicht verfolgte Dateien (z. B. solche, die durch eine .gitignore-Datei abgedeckt sind). Lesen Sie die folgenden Hinweise sorgfältig durch und erwägen Sie stattdessen git checkout .26 Stimmen
'git clean -df ' Seien Sie gewarnt! Ich habe das ausprobiert und wichtige Ordner verloren, die nicht wiederhergestellt werden können... Autsch!
73 Stimmen
Unter
git status
macht einen Vorschlag, wie man das machen kann!git checkout -- .
0 Stimmen
Git gui hat eine Funktion, mit der Änderungen sicher rückgängig gemacht werden können. .gitignore wird von diesem Programm beachtet, während git-clean es überhaupt nicht verwendet.
0 Stimmen
@Readonly Ich denke, die Frage sollte lauten: "Wie verwerfe ich nicht bereitgestellte Änderungen im Arbeitsbaum?
git reset HEAD file1
das überschreibtfile1
vom letzten Commit in der Commit-Historie zum Staging-Bereich.28 Stimmen
@Paulo: ab Juli 2019,
git status
gibt die Anregung:git restore
.git restore
ist ein neuer Befehl genau für diesen Zweck. Siehe mein Update 2019 .2 Stimmen
Ich denke, dass entweder die Frage oder der Titel geändert werden sollte. Der Titel stimmt nicht mit der gestellten Frage überein, und es ist nicht klar, ob die Antworten beides abdecken.
0 Stimmen
Wahrscheinlich ist es nicht das, was Sie suchen, aber wenn Sie die GitHub Desktop App verwenden, gibt es natürlich einen Menüpunkt, um dies zu tun. Zweig -> Alle Änderungen verwerfen