Dann habe ich einige Dateien hinzugefügt. Wie kann ich ein Rollback durchführen und entfernen, was in meinen aktuellen Dateien noch nicht hinzugefügt / festgeschrieben wurde?
Nein, dies ist nicht das, was das OP verlangt - es ist klar, dass er auf das letzte Commit zurücksetzen und das letzte Commit nicht rückgängig machen möchte. Er hat nicht gesagt, dass er einige Dateien hinzugefügt und sie dann festgeschrieben hat. so klar will er das letzte Commit.
Paul
1
Es ist zu schwer, eine Antwort auf diese sehr häufige Frage zu finden
Sam
Antworten:
211
Caveat Emptor - Zerstörerische Befehle voraus.
Schadensbegrenzung - git reflogkann Sie bei Bedarf retten.
1) Machen Sie lokale Dateiänderungen rückgängig und behalten Sie Ihr letztes Commit bei
git reset --hard
2) Machen Sie lokale Dateiänderungen rückgängig und ENTFERNEN Sie Ihr letztes Commit
git reset --hard HEAD^
3) HALTEN lokale Dateiänderungen und REMOVE Ihre letzten Commit
Dieser Befehl löscht Ihr vorheriges Commit. Verwenden Sie es daher mit Vorsicht! Git Reset - Hard ist sicherer
Rudivonstaden
9
WTF ist dies die richtige Antwort mit 36 Stimmen. Ich habe gerade einen Tag Arbeit verloren ... weil ich die Antwort gelesen habe, nicht den Kommentar. Dies ist nicht die richtige Antwort auf die Frage!
Chris Nevill
1
OK, es ist nicht alles verloren! Sie können ein Git-Reflog durchführen, um zu sehen, welche Commits Sie vor dem Zurücksetzen ausgeführt haben. Sie können dann diese Commits auschecken
Chris Nevill
3
Für das, was es wert ist, hatte ich die Frage des OP als "Wie kann ich das Commit zurücksetzen und die aktuellen Dateien entfernen" interpretiert, aber es war und bleibt mehrdeutig. Ich hätte es anders verstanden, wenn das OP einfach gesagt hätte: "Wie entferne ich die aktuellen Dateien, die nicht hinzugefügt oder festgeschrieben wurden
?
2
Git ist das Gegenteil von Alan Kays Aussage Einfache Dinge sollten einfach sein, komplexe Dinge sollten möglich sein. ... vor allem von seinem ersten Teil. Trotzdem vielen Dank für Ihre Antwort. es half.
0xC0000022L
46
Wenn Sie neu hinzugefügte Inhalte und Dateien entfernen möchten, die bereits bereitgestellt wurden (also dem Index hinzugefügt wurden), verwenden Sie:
git reset --hard
Wenn Sie auch Ihr letztes Commit entfernen möchten (ist das mit der Meldung "blah"), verwenden Sie besser:
git reset --hard HEAD^
Um die nicht verfolgten Dateien (also neue Dateien, die noch nicht zum Index hinzugefügt wurden) und Ordner zu entfernen, verwenden Sie:
habe das getan, aber die Dateien sind immer noch da. (nicht verfolgte Dateien sind noch da)
Blankman
In diesem Fall könnten Sie einen "Git Stash" machen
Jacktrade
3
positiv bewertet, weil dies die einzige klare und eindeutige Antwort auf die klare und eindeutige Frage des OP ist.
Paul
4
Sie können ein Commit zurücksetzen, indem Sie git revert HEAD^zum vorletzten Commit zurückkehren. Sie können auch das Commit angeben, das zurückgesetzt werden soll, indem Sie die ID anstelle von HEAD ^ verwenden
Eine einfache und kinderleichte Möglichkeit , lokale Dateiänderungen seit dem letzten Commit rückgängig zu machen, besteht darin, sie in einem neuen Zweig zu platzieren:
Damit bleiben die Änderungen im neuen Zweig. Kehren Sie zum ursprünglichen Zweig zurück, um zum letzten Commit zurückzukehren:
git checkout master
Der neue Zweig ist ein guter Ort, um verschiedene Methoden zum Zurücksetzen von Änderungen zu üben, ohne das Risiko einzugehen, dass der ursprüngliche Zweig durcheinander gebracht wird.
Antworten:
Caveat Emptor - Zerstörerische Befehle voraus.
Schadensbegrenzung -
git reflog
kann Sie bei Bedarf retten.1) Machen Sie lokale Dateiänderungen rückgängig und behalten Sie Ihr letztes Commit bei
2) Machen Sie lokale Dateiänderungen rückgängig und ENTFERNEN Sie Ihr letztes Commit
3) HALTEN lokale Dateiänderungen und REMOVE Ihre letzten Commit
quelle
Wenn Sie neu hinzugefügte Inhalte und Dateien entfernen möchten, die bereits bereitgestellt wurden (also dem Index hinzugefügt wurden), verwenden Sie:
Wenn Sie auch Ihr letztes Commit entfernen möchten (ist das mit der Meldung "blah"), verwenden Sie besser:
Um die nicht verfolgten Dateien (also neue Dateien, die noch nicht zum Index hinzugefügt wurden) und Ordner zu entfernen, verwenden Sie:
quelle
git reset --hard
zwingt das Arbeitsverzeichnis zum letzten Festschreiben zurück und löscht neue / geänderte Dateien.quelle
Sie können ein Commit zurücksetzen, indem Sie
git revert HEAD^
zum vorletzten Commit zurückkehren. Sie können auch das Commit angeben, das zurückgesetzt werden soll, indem Sie die ID anstelle von HEAD ^ verwendenquelle
Wenn Sie das letzte Commit einfach aufheben möchten, verwenden Sie Folgendes:
arbeite wie ein Zauber für mich.
quelle
Eine einfache und kinderleichte Möglichkeit , lokale Dateiänderungen seit dem letzten Commit rückgängig zu machen, besteht darin, sie in einem neuen Zweig zu platzieren:
Damit bleiben die Änderungen im neuen Zweig. Kehren Sie zum ursprünglichen Zweig zurück, um zum letzten Commit zurückzukehren:
Der neue Zweig ist ein guter Ort, um verschiedene Methoden zum Zurücksetzen von Änderungen zu üben, ohne das Risiko einzugehen, dass der ursprüngliche Zweig durcheinander gebracht wird.
quelle