Git-Reset erklärt: weich, gemischt und hart
git reset verschiebt Ihren Zweig in einen anderen Commit. Die drei Modi unterscheiden sich nur darin, was sie mit Ihren Dateien tun. Hier erfahren Sie, was jeder behält, was Sie verwenden können und wie Sie ihn wiederherstellen, wenn Sie zu weit zurückgesetzt haben.
Geschrieben von Kodmora
Das Softwarehaus hinter GitTree
- Rückgängigmachen und Wiederherstellen
- Commit-Verlauf
- Commits
Auf dieser Seite
Alle drei Modi verschieben den aktuellen Zweig in den von Ihnen benannten Commit. `--soft` sorgt dafür, dass jede Änderung bereitgestellt wird, `--mixed` (Standardeinstellung) behält sie ohne Bereitstellung in Ihrem Arbeitsordner und `--hard` verwirft sie. Um Ihren letzten Commit rückgängig zu machen, aber die Arbeit beizubehalten, führen Sie git reset --soft HEAD~1 aus. Verwenden Sie --hard nur, wenn Sie sicher sind, da dadurch nicht committete Änderungen endgültig gelöscht werden.
Was ist der Unterschied zwischen weich, gemischt und hart?
| Modus | Zweigumzüge | Bereitstellungsbereich | Arbeitsordner | Benutze es, um |
|---|---|---|---|---|
--soft | Ja | Behalten | Behalten | Redo-Commits: Alles bleibt gestagt |
--mixed | Ja | Zurücksetzen | Behalten | Heben Sie die Bühne auf und wählen Sie erneut aus, was Sie committen möchten |
--hard | Ja | Zurücksetzen | Zurücksetzen | Werfen Sie die Arbeit weg |
Git speichert drei Kopien Ihrer Arbeit: den Commit-Verlauf, den Staging-Bereich und den Arbeitsordner. Zurücksetzen verschiebt immer den ersten. Der Modus entscheidet, ob er auch die anderen beiden umschreibt.
Wann sollte ich git reset --soft verwenden?
Verwenden Sie es, um Commits rückgängig zu machen, während jede Änderung im Stadium bleibt und für eine erneute Commit bereit bleibt. Dies ist der schnellste Weg, einen Zweig in einem Commit zusammenzufassen:
# undo the last commit, keep the changes staged
git reset --soft HEAD~1
# squash everything since main into one commit
git reset --soft main
git commit -m "feat(search): quick open"Wann sollte ich git reset --mixed verwenden?
Dies ist die Standardeinstellung, daher bedeutet git reset git reset --mixed. Verwenden Sie es, um Commits rückgängig zu machen und die Arbeit anders aufzuteilen oder um die Bereitstellung von Dateien aufzuheben:
# undo the last two commits, keep the changes unstaged
git reset HEAD~2
# unstage one file (the branch does not move)
git reset src/search.tsBeim Aufheben der Bereitstellung übernimmt git restore --staged src/search.ts die gleiche Aufgabe und liest sich klarer.
Wann sollte ich git reset --hard verwenden?
# drop the last commit and its changes
git reset --hard HEAD~1
# match the remote exactly
git fetch origin
git reset --hard origin/mainWie entferne ich ein Commit aus einem Branch?
| Situation | Befehl |
|---|---|
| Letzter Commit, nicht gepusht | git reset --hard HEAD~1 |
| Älterer Commit, nicht gepusht | git rebase -i <sha>~1, dann markieren Sie es als drop |
| Commit wurde bereits gepusht | git revert <sha> |
| Commit ging zum falschen Zweig | git cherry-pick es und setzen Sie dann den alten Zweig zurück |
git revert hält den Verlauf intakt und ist daher die einzig sichere Wahl in einem gemeinsam genutzten Zweig. Das Zurücksetzen eines verschobenen Zweigs erfordert einen erzwungenen Push und zerstört die Klone Ihrer Teamkollegen. Interactive rebase und cherry-pick haben ihre eigenen Anleitungen.
Wie mache ich einen Git-Reset rückgängig?
Durch Zurücksetzen wurde der Zweig verschoben und das Reflog merkt sich, wo er war:
git reflog
# 3e52f10 HEAD@{0}: reset: moving to HEAD~2
# 9b3c7d1 HEAD@{1}: commit: add search box
git reset --hard 9b3c7d1Dies bringt Commits zurück, auch nach --hard. Dateien, die bereitgestellt, aber nie committet wurden, können manchmal mit git fsck --lost-found gefunden werden. Veränderungen, die nie gestagt wurden, sind weg. Ein Zurücksetzen, Rebase oder Commit rückgängig machen deckt jeden Fall ab.
Was ist der Unterschied zwischen Zurücksetzen, Zurücksetzen und Wiederherstellen?
| Befehl | Was es bewirkt | Geschichte neu schreiben? |
|---|---|---|
git reset | Verschiebt den Zweig zu einem anderen Commit | Ja |
git revert | Fügt einen Commit hinzu, der einen anderen rückgängig macht | Nein |
git restore | Ändert Dateien, niemals den Zweig | Nein |
So setzen Sie einen Zweig in GitTree zurück
Wählen Sie das Commit aus
Klicken Sie mit der rechten Maustaste auf den Commit, zu dem der Zweig zurückkehren soll, und öffnen Sie Reset … to This Commit.
Wählen Sie den Modus
Wählen Sie Sanft: Alle Änderungen bereitgestellt halten, Gemischt: Änderungen im Arbeitsordner beibehalten oder Schwer: Alle Änderungen verwerfen….
Machen Sie den Vorgang bei Bedarf rückgängig
GitTree speichert Ihre Arbeit zuerst unter
refs/ogt/trash, so dass Rückgängig sie auch nach einem Hard-Reset wiederherstellen kann.

Weitere Informationen finden Sie unter Einen Zweig auf einen Commit zurücksetzen und in der Lektion zum Zurücksetzen der Modi zum Üben an einem sicheren Repository.
Häufig gestellte Fragen
Was bedeutet HEAD~1?
Der Commit erfolgt einen Schritt vor dem aktuellen. HEAD~3 ist drei Schritte zurück. git log --oneline zeigt die Hashes an, wenn Sie einen Commit lieber direkt benennen möchten.
Löscht Git Reset Commits?
Dadurch wird der Zweig von ihnen weg verschoben, sodass sie nicht mehr in git log angezeigt werden. Sie bleiben standardmäßig mindestens 30 Tage im Reflog, dann kann Git sie entfernen.
Wie mache ich mein letztes Commit rückgängig, behalte aber die Änderungen bei?
Führen Sie git reset --soft HEAD~1 aus, um sie im Staging zu belassen, oder git reset HEAD~1, um sie nicht im Staging zu halten.
Ist git reset --hard sicher?
Es ist sicher für engagierte Arbeit, die durch das Reflog zurückgebracht werden kann. Es ist nicht sicher für nicht committete Arbeit, die gelöscht wird. Wenn Sie sich nicht sicher sind, sollten Sie es zuerst verstauen oder committen.
Kann ich einen Zweig zurücksetzen, der bereits gepusht wurde?
Nur mit einem Force-Push, der den Zweig für alle neu schreibt. Verwenden Sie bei gemeinsam genutzten Zweigen stattdessen git revert.
Quellen
Behauptungen zu anderen Produkten wurden anhand der offiziellen Seiten auf 7. November 2026 überprüft. Preise und Ausstattung ändern sich; Die Seiten der Anbieter sind die Quelle der Wahrheit.
