Start·Terminal-Befehle

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

OptionBedeutung
--softmove the branch only; index and files keep everything, so the change stays staged
--mixeddefault: also clear the staging area, leaving edits in your files
--hardalso overwrite your files; uncommitted work is destroyed
<path>no commit given: unstage that path
--keepmove but refuse if it would overwrite a local change
--mergelike --hard but keeps changes that do not collide

Beispiele

git reset --soft HEAD~1

undoes the last commit and leaves everything staged

git reset HEAD~1

undoes the last commit; the changes sit in your files, unstaged

git reset src/app.ts

unstages one file without changing it

git reset --hard origin/main

throws 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