Frage Wie können nicht festgeschriebene Änderungen, einschließlich Dateien und Ordner, rückgängig gemacht werden?


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?


878
2018-04-27 16:06


Ursprung


Antworten:


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

1473
2018-04-28 02:37



Wenn Sie die Änderungen nur im aktuellen Arbeitsverzeichnis wiederherstellen möchten, verwenden Sie

git checkout -- .

Und davor können Sie die Dateien auflisten, die rückgängig gemacht werden, ohne tatsächlich etwas zu unternehmen, nur um zu überprüfen, was passiert, mit:

git checkout --

475
2018-06-21 04:41



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 gespeicherten Dateien im git-Status vorgenommen wurden, z

modified:    app/controllers/posts.rb
modified:    app/views/posts/index.html.erb

92
2018-03-13 01:16



Ein nicht-trivialer Weg ist, diese beiden Befehle auszuführen:

  1. git stash  Dadurch werden Ihre Änderungen in den Stash verschoben und Sie kehren in den Zustand von HEAD zurück
  2. git stash drop  Dadurch wird der letzte im letzten Befehl erstellte Speicher gelöscht.

42
2017-07-18 09:20



git clean -fd

hat nicht geholfen, neue Akten sind geblieben. Was ich getan habe, löscht den ganzen Arbeitsbaum und dann

git reset --hard

Sehen "Wie lösche ich mein lokales Arbeitsverzeichnis in git?"für den Rat, die hinzuzufügen -x Reinigungsoption:

git clean -fdx

Hinweis  -x flag wird alle von Git ignorierten Dateien entfernen, sei also vorsichtig (siehe Diskussion in der Antwort, auf die ich mich beziehe).


14
2017-10-15 06:57



Ich denke du kannst den folgenden Befehl benutzen: git reset --hard


10
2018-04-27 16:10



Bitte beachten Sie, dass es immer noch Dateien geben kann, die nicht verschwinden werden - sie sind möglicherweise nicht bearbeitet, aber Git hat sie möglicherweise wegen CRLF / LF-Änderungen als bearbeitet markiert. Sehen Sie, ob Sie einige Änderungen vorgenommen haben .gitattributes vor kurzem.

In meinem Fall habe ich CRLF - Einstellungen in die hinzugefügt .gitattributes Die Datei und alle Dateien blieben deshalb in der Liste "Geänderte Dateien". Durch Ändern der .gitattributes-Einstellungen wurden sie ausgeblendet.


5
2017-07-19 10:07



Ein sicherer und langer Weg:

  1. git branch todelete
  2. git checkout todelete
  3. git add .
  4. git commit -m "I did a bad thing, sorry"
  5. git checkout develop
  6. git branch -D todelete

-2
2017-11-19 02:08



Benutzen:

git reset HEAD filepath

Beispielsweise:

git reset HEAD om211/src/META-INF/persistence.xml

-3
2018-02-09 13:18



Normalerweise benutze ich diesen Weg, der gut funktioniert:

mv fold/file /tmp
git checkout fold/file

-3
2018-04-08 07:17