Git Delete Last Commit
Hin und wieder, spät in der Nacht, wenn mir der Kaffee ausgeht, lege ich Dinge fest, die ich nicht haben sollte. Dann verbringe ich die nächsten 10 - 15 Minuten damit, zu googeln, wie ich das letzte Commit entferne, das ich gemacht habe. Also wollte ich nach dem dritten Mal eine Aufzeichnung machen, damit ich später darauf zurückgreifen kann.
Wenn Sie Junk begangen, aber nicht gepusht haben,
git reset --hard HEAD~1
HEAD ~ 1 ist eine Abkürzung für das Festschreiben vor head. Alternativ können Sie sich auf den SHA-1 des Hash beziehen, auf den Sie zurücksetzen möchten. Beachten Sie, dass bei der Verwendung von --hard alle Änderungen an nachverfolgten Dateien im Arbeitsbaum, die seit dem Festschreiben vor head vorgenommen wurden, verloren gehen.
Wenn Sie die geleistete Arbeit nicht auslöschen möchten, können Sie die
--soft
Option verwenden, mit der die Festschreibung gelöscht wird, aber alle Ihre geänderten Dateien bleiben "Zu festschreibende Änderungen", wie es der Git-Status vorschreibt.
Wenn Sie bereits gedrückt und jemand gezogen hat, was normalerweise bei mir der Fall ist, können Sie git reset nicht verwenden. Sie können jedoch einen Git-Revert durchführen,
git revert HEAD
Dadurch wird eine neue Festschreibung erstellt, die alle durch die versehentliche Festschreibung eingeführten Vorgänge rückgängig macht.