git reset
git
Aufruf
git reset [--soft|--mixed|--hard] <commit> | git reset <path>Verschiebt den Branch-Zeiger auf einen anderen Commit: --soft lässt alles vorbereitet, --mixed (Standard) leert zusätzlich die Staging-Area, behält die Änderungen aber in den Dateien, und --hard verwirft auch diese unwiederbringlich.
Häufige Optionen
| Option | Bedeutung |
|---|---|
| --soft | move the branch only; index and files keep everything, so the change stays staged |
| --mixed | default: also clear the staging area, leaving edits in your files |
| --hard | also overwrite your files; uncommitted work is destroyed |
| <path> | no commit given: unstage that path |
| --keep | move but refuse if it would overwrite a local change |
| --merge | like --hard but keeps changes that do not collide |
Beispiele
git reset --soft HEAD~1undoes the last commit and leaves everything staged
git reset HEAD~1undoes the last commit; the changes sit in your files, unstaged
git reset src/app.tsunstages one file without changing it
git reset --hard origin/mainthrows away local commits AND uncommitted edits
Verwirrend ist, dass Rückgängig mehrere Formen hat — den Zeiger eines Branch zu verschieben ist nicht dasselbe wie einen Gegen-Commit zu setzen.
So liest man das
- Eckige Klammern [ ] markieren einen Teil, den man weglassen kann.
- Drei Punkte … heißen: mehrere sind erlaubt.
- Optionen achten auf Groß- und Kleinschreibung — bei manchen Befehlen sind -r und -R verschieden.
Häufige Fragen
Q. Was macht git reset?
Verschiebt den Branch-Zeiger auf einen anderen Commit: --soft lässt alles vorbereitet, --mixed (Standard) leert zusätzlich die Staging-Area, behält die Änderungen aber in den Dateien, und --hard verwirft auch diese unwiederbringlich.
Q. Wie gibt man ihn ein?
git reset [--soft|--mixed|--hard] <commit> | git reset <path> — eckige Klammern markieren, was wegfallen darf.
Q. Wie viele Optionen lohnen sich?
Hier stehen 6; die vollständige Liste steht in man git. Der Befehl gehört zu git.
Verwandte Befehle
man-Seite: man git-reset