Die drei Baume
Git verfolgt drei "Baume": den HEAD-Commit, den Index und den Working Tree.
--soft: nur HEAD verschieben
git reset --soft HEAD~1
git commit -m "Better message"
--mixed: auch Index zurucksetzen (Standard)
git reset HEAD~1
--hard: alles zurucksetzen
git reset --hard HEAD~1
Eine Entscheidungstabelle
- Letzte Commit-Nachricht erneut machen?
--soft HEAD~1dann erneut committen. - Alles un-stagen?
--mixed. - Lokale Anderungen wegwerfen?
--hard origin/main.
Eine einzelne Datei zurucksetzen
git reset HEAD path/to/file
git checkout -- path/to/file
git restore --staged path/to/file
git restore path/to/file
Reset versus Revert
reset schreibt die Historie um. revert erstellt einen neuen Commit.
Wiederherstellung nach schlechtem --hard
git reflog
git reset --hard HEAD@{1}