Gibt es ein Git-Befehl, um alle nicht bestätigten Änderungen in einem Arbeitsverzeichnis und Index rückgängig zu machen und auch neu erstellte Dateien und Ordner zu entfernen?
Was bedeutet -fdx? "Force, Verzeichnis und x bedeutet?
Gibt es ein Git-Befehl, um alle nicht bestätigten Änderungen in einem Arbeitsverzeichnis und Index rückgängig zu machen und auch neu erstellte Dateien und Ordner zu entfernen?
git clean -fd
hat nicht geholfen und neue Dateien blieben. Ich habe den gesamten Arbeitsbereich gelöscht und dann
git reset --hard
Siehe "https://stackoverflow.com/questions/673407/how-do-i-clear-my-local-working-directory-in-git/673420#673420" für den Rat, die Option -x
zum Bereinigen hinzuzufügen:
git clean -fdx
Hinweis Die -x
Flagge entfernt alle von Git ignorierten Dateien, also seien Sie vorsichtig (siehe die Diskussion in der Antwort, auf die ich verweise).
@AdiPrasetyo Die -x Flag entfernt auch alle ignorierten Dateien; das könnte einen unerwünschten Effekt haben, daher habe ich meine Antwort aktualisiert.
Hhmm... Ich habe das gemacht, aber meine Dateien sind immer noch da. Sollte ich danach etwas tun?
Git reset setzt nur die nicht committeten Änderungen im Arbeitsverzeichnis zurück. Es wird die neuen Dateien und Ordner nicht entfernen. Ich bin mir nicht sicher, wie das mit git gemacht wird.
So, wenn wir ein Systemverzeichnis ändern, indem wir neue Dateien und Ordner hinzufügen, und dann möchten wir dieses Verzeichnis auf einen früheren Zustand zurücksetzen (ohne diese Dateien und Ordner), können wir das nicht mit git machen? Ist das Beste, was wir tun können, also Dateizustände zurückzusetzen? Aber sobald wir eine Datei erstellen, können wir diese Datei nicht entfernen, es sei denn, wir tun es manuell?
Ich versuche dies nach einem nicht committed git rm dateiname
und es funktioniert nicht. Fehler: Pfadangabe 'dateiname' entspricht keiner bekannten Datei in git.
Es funktioniert (ausprobiert mit Git 2.17.1). Aber warum unterscheidet es sich von Zarne Dravitzki's Antwort?
Bitte beachten Sie, dass möglicherweise immer noch Dateien vorhanden sind, die nicht zu verschwinden scheinen - sie könnten unverändert sein, aber Git könnte sie als bearbeitet markiert haben, aufgrund von CRLF / LF-Änderungen. Überprüfen Sie, ob Sie kürzlich Änderungen in der Datei .gitattributes
vorgenommen haben.
In meinem Fall habe ich CRLF-Einstellungen in der Datei .gitattributes
hinzugefügt und alle Dateien blieben in der Liste der "geänderten Dateien", wegen dieser Änderung. Die Änderung der .gitattributes-Einstellungen ließ sie verschwinden.
Sie können einfach den folgenden Git-Befehl verwenden, der alle nicht committed Änderungen in Ihrem Repository zurücksetzen kann:
git checkout .
Beispiel:
ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
modified: application/controllers/Drivers.php
modified: application/views/drivers/add.php
modified: application/views/drivers/load_driver_info.php
modified: uploads/drivers/drivers.xlsx
no changes added to commit (use "git add" and/or "git commit -a")
ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git checkout .
ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
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.
2 Stimmen
Möglicher Duplikat von Wie verwirft man nicht aufgezeichnete Änderungen in Git?
2 Stimmen
Nun ja, ich habe alle unterschiedlichen und schwer zu merkenden Antworten unten gelesen, mit ihren Einschränkungen und Spezialfällen und "funktioniert nicht, wenn du xxx hast", und habe mich dafür entschieden, das gesamte Repository zu löschen, es zu klonen, um alle bearbeiteten und hinzugefügten Dateien zu entfernen. Es sind auch nur zwei Befehle. `rm -r projectdir; git clone xxx`. Für mich ist dies eine häufige Operation - ein Repository auschecken, damit herumspielen und dann wieder zu einem sauberen Checkout zurückkehren, um es bearbeiten zu können. Nicht ideal, aber funktioniert zu 100%. Hoffentlich wird es irgendwann einen einfachen Befehl dafür geben.