Gibt es einen Git-Befehl, um alle nicht festgeschriebenen Änderungen in einem funktionierenden Baum und Index rückgängig zu machen und auch neu erstellte Dateien und Ordner zu entfernen?
Wie kann ich nicht festgeschriebene Änderungen einschließlich Dateien und Ordnern rückgängig machen?
MEM
htanata
Sie können diese beiden Befehle ausführen:
# Revert changes to modified files.
git reset --hard
# Remove all untracked files and directories.
# '-f' is force, '-d' is remove directories.
git clean -fd
-
Es ist eine gute Idee, „git clean -nd“ auszuführen, um eine Vorschau der Änderungen anzuzeigen, bevor Sie git clean ausführen, um sicherzustellen, dass Sie keine nicht nachverfolgten Dateien oder Verzeichnisse haben, die Sie interessieren und die entfernt werden.
– jpw
14. Juli 2013 um 5:13 Uhr
-
Ersparen Sie jemandem einen Ausflug in die Dokumentation: -f ist erzwingen, -d ist Verzeichnisse entfernen, -n ist Probelauf (auch –dry-run; Ausgabe anzeigen, ohne noch etwas zu tun)
– Aaron Campbell
4. Juni 2015 um 21:07 Uhr
-
git clean -i
für einen interaktiven Modus.– gala
12. August 2015 um 15:17 Uhr
-
Es hat meine nicht bereitgestellten Dateien nicht zurückgesetzt, ich musste sie zuerst bereitstellen.
– Aron Lorincz
8. Januar 2016 um 12:06 Uhr
-
@IgorGanapolsky Sie befinden sich wahrscheinlich mitten in einem Zusammenführungskonflikt. Versuchen Sie es mit Laufen
git merge --abort
.– htanata
12. Oktober 2016 um 20:46 Uhr
Ramashish Baranwal
Wenn Sie die Änderungen nur im aktuellen Arbeitsverzeichnis rückgängig machen möchten, verwenden Sie
git checkout -- .
Und vorher können Sie die Dateien auflisten, die zurückgesetzt werden, ohne tatsächlich etwas zu unternehmen, nur um zu überprüfen, was passieren wird, mit:
git checkout --
-
Wenn ich das versuche, bekomme ich “error: pathpec ‘.” stimmte mit keiner git bekannten Datei(en) überein.
– Mike K
16. Mai 2014 um 17:12 Uhr
-
was ist der unterschied zwischen diesem und
git reset --hard
?– Felipe
10. August 2014 um 22:32 Uhr
-
‘git reset –hard’ macht sowohl gestaffelte als auch nicht gestaffelte Änderungen rückgängig, während ‘git checkout — .’ macht nur nicht bereitgestellte Änderungen rückgängig
– geteilt durch Null
30. Oktober 2014 um 10:36 Uhr
-
Aber wenn Sie das Auschecken verwenden und Dateien geändert haben, gibt das cmd zurück, dass ich die Zusammenführung durchführen muss, selbst wenn ich diese Änderungen nur rückgängig machen muss
– Vinicius Monteiro
16. Dezember 2015 um 11:47 Uhr
-
git checkout – listet einfach die Dateien auf, die zurückgesetzt werden (keine Aktion, nur Liste). Dies ist nützlich, wenn Sie sehen möchten, welche Dateien betroffen sind, bevor Sie git checkout — ausführen.
– Krish Srinivasan
3. August 2016 um 15:27 Uhr
Verwenden Sie “git checkout — …”, um Änderungen im Arbeitsverzeichnis zu verwerfen
git checkout -- app/views/posts/index.html.erb
oder
git checkout -- *
entfernt alle Änderungen, die an nicht bereitgestellten Dateien im Git-Status vorgenommen wurden, z
modified: app/controllers/posts.rb
modified: app/views/posts/index.html.erb
-
git checkout -- *
funktioniert bei mir nur, wenn ich mich in dem Verzeichnis befinde, in dem sich die geänderten Dateien befinden. Um alle Dateien im gesamten Repository auszuchecken, müssen Sie dies tungit checkout -- :/
– waldreich
4. April 2016 um 19:02 Uhr
-
In
git checkout -- *
, der Stern wird durch die Shell ersetzt, mit allen Dateien und Verzeichnissen im aktuellen Verzeichnis. Es sollte also in Unterverzeichnisse gehen. Für mich geht das. Aber dank der Hervorhebung der Syntax “:/”, die meiner Meinung nach sauberer erscheint.– mcooliv
30. November 2016 um 12:40 Uhr
-
Es scheint, dass ich es kann
git checkout -- '**/*.md'
auch. Genau das, was ich gerade brauche.– Polv
19. Juni 2020 um 2:15 Uhr
Glumgold
Eine nicht triviale Möglichkeit besteht darin, diese beiden Befehle auszuführen:
git stash
Dies verschiebt Ihre Änderungen in den Stash und bringt Sie zurück in den HEAD-Zustandgit stash drop
Dadurch wird der letzte Stash gelöscht, der im letzten Befehl erstellt wurde.
Fr0sT
git clean -fd
hat nicht geholfen, und neue Dateien blieben. Ich habe den gesamten Arbeitsbaum und dann vollständig gelöscht
git reset --hard
Sehen “https://stackoverflow.com/questions/673407/how-do-i-clear-my-local-working-directory-in-git/673420#673420” für Ratschläge zum Hinzufügen der -x
Reinigungsmöglichkeit:
git clean -fdx
Notiz -x
flag entfernt alle Dateien, die von Git ignoriert werden, seien Sie also vorsichtig (siehe die Diskussion in der Antwort, auf die ich mich beziehe).
-
Was ist -fdx? “Forcen, Verzeichnis und x ist?
– Adi Prasetyo
30. April 2016 um 3:37 Uhr
-
@AdiPrasetyo -x Flag entfernt auch alle ignorierten Dateien; Es könnte ein unerwünschter Effekt sein, also habe ich meine Antwort aktualisiert.
– Fr0sT
4. Mai 2016 um 6:41 Uhr
-
Ich kann immer noch nicht rebase. Ich bekomme den Fehler: Fehler: Die Änderungen konnten nicht zusammengeführt werden. Patch fehlgeschlagen bei 0003 Erstellen Sie Rückruf an Die Kopie des fehlgeschlagenen Patches befindet sich in:
– IgorGanapolsky
12. Oktober 2016 um 17:08 Uhr
Malloc
Ich denke, Sie können den folgenden Befehl verwenden: git reset --hard
-
Was ist -fdx? “Forcen, Verzeichnis und x ist?
– Adi Prasetyo
30. April 2016 um 3:37 Uhr
-
@AdiPrasetyo -x Flag entfernt auch alle ignorierten Dateien; Es könnte ein unerwünschter Effekt sein, also habe ich meine Antwort aktualisiert.
– Fr0sT
4. Mai 2016 um 6:41 Uhr
-
Ich kann immer noch nicht rebase. Ich bekomme den Fehler: Fehler: Die Änderungen konnten nicht zusammengeführt werden. Patch fehlgeschlagen bei 0003 Erstellen Sie Rückruf an Die Kopie des fehlgeschlagenen Patches befindet sich in:
– IgorGanapolsky
12. Oktober 2016 um 17:08 Uhr
Peter Mortensen
Git 2.23 führte die git restore
Befehl zum Wiederherstellen von Arbeitsbaumdateien.
So stellen Sie alle Dateien im aktuellen Verzeichnis wieder her:
git restore .
Wenn Sie alle C-Quelldateien so wiederherstellen möchten, dass sie mit der Version im Index übereinstimmen, können Sie dies tun
git restore '*.c'
-
-
Was ist das entsprechende (Release-)Datum für Git 2.23?
– Peter Mortensen
14. Mai um 22:12 Uhr
Mögliches Duplikat von Wie verwerfen Sie nicht bereitgestellte Änderungen in Git?
– wusan
13. Mai 2016 um 10:28 Uhr
Nun, ich habe all die vielfältigen und schwer zu merkenden Antworten unten gelesen, mit ihren Vorbehalten und Grenzfällen und “funktionierte nicht, wenn Sie xxx haben”, und bin dabei geblieben, das gesamte Repo zu löschen und es zu klonen, um alle bearbeiteten und hinzugefügten Dateien zu entfernen . Ist auch nur zwei Befehle. rm -r Projektverzeichnis; git-Klon xxx. Für mich ist dies eine häufige Operation – schauen Sie sich ein Repo an, spielen Sie damit herum, und möchten Sie dann zu einem sauberen Checkout zurückkehren, damit ich mit der Änderung beginnen kann. Nicht toll, aber funktioniert zu 100%. In der Hoffnung, dass sie eines Tages einen einfachen Befehl dafür hinzufügen werden.
– Johannes Klein
16. August 2018 um 22:07 Uhr