Git Reset --hard
Zuletzt aktualisiert
git reset --hard verschiebt deinen Branch auf einen Ziel-Commit und zwingt sowohl den Staging-Bereich als auch dein Arbeitsverzeichnis, exakt damit übereinzustimmen - wobei jede nicht committete Änderung dabei verworfen wird. Es ist die destruktivste Form von git reset, also stelle sicher, dass du deine aktuelle Arbeit nicht mehr brauchst, bevor du es ausführst.
Aus Versehen einen Commit verworfen? Ein Hard Reset ist meist über git reflog wiederherstellbar. Probiere das gefahrlos im Terminal-Playground aus - eine echte Shell in deinem Browser.
Syntax
| Command | What it does |
|---|---|
git reset --hard | Verwirft alle nicht committeten Änderungen (bleibt auf HEAD) |
git reset --hard HEAD~1 | Entfernt den letzten Commit und seine Änderungen |
git reset --hard <hash> | Setzt den Branch zwangsweise auf einen bestimmten Commit zurück |
git reset --hard origin/main | Bringt den lokalen Branch exakt mit dem Remote in Übereinstimmung |
Einen Hard Reset wiederherstellen
Committete Arbeit, die du per Reset verworfen hast, ist meist noch wiederherstellbar.
| Step | Command | Result |
|---|---|---|
| 1 | git reflog | Listet auf, wo HEAD gewesen ist, mit Hashes |
| 2 | git reset --hard <hash> | Springt zurück zum Commit vor dem Reset |
git reset --hard FAQ
Was macht git reset --hard eigentlich?
--soft (das Änderungen gestaged behält) und --mixed (das sie ungestaged behält) ist --hard der einzige Modus, der die Änderungen wegwirft.Wie verwerfe ich alle meine lokalen Änderungen?
git reset --hard ohne Commit aus, um das Arbeitsverzeichnis auf den letzten Commit zurückzusetzen und nicht committete Bearbeitungen zu löschen. Um auch nicht verfolgte Dateien zu entfernen, die reset nicht anfasst, führe anschließend git clean -fd aus.Wie setze ich meinen Branch so zurück, dass er mit dem Remote übereinstimmt?
git fetch und dann git reset --hard origin/main aus (setze deinen Branch ein). Das zwingt deinen lokalen Branch, exakt mit dem Remote übereinzustimmen, und verwirft lokale Commits und Änderungen, die davon abweichen - nützlich, wenn dein lokaler Branch schiefgelaufen ist und du einfach die Version des Remote willst.Kann ich ein git reset --hard rückgängig machen?
git reflog aus, um den Commit zu finden, auf den dein Branch vor dem Reset zeigte, dann git reset --hard <hash>, um dorthin zurückzukehren. Änderungen, die nie committet wurden (nur in deinem Arbeitsverzeichnis), können nicht wiederhergestellt werden, gehe also mit --hard vorsichtig um.Kann ich das online üben?
git reset --hard in einer echten Shell in deinem Browser auszuführen - nichts zu installieren. Coddys kostenloser interaktiver Git-Kurs behandelt auch das Zurücksetzen und Rückgängigmachen von Änderungen Schritt für Schritt.