Von Gast (nicht überprüft) , 29 April 2026

Die unbesungenen Pseudo-Refs

Neben HEAD pflegt Git einen kleinen Zoo automatisch aktualisierter Refs, die aufzeichnen, was gerade passiert ist.

HEAD

Zeigt auf den aktuellen Branch oder, wenn detached, direkt auf einen Commit-SHA.

ORIG_HEAD

Wird von destruktiven Operationen (merge, rebase, reset, am) auf den vorherigen Tip gesetzt.

git reset --hard ORIG_HEAD

FETCH_HEAD

git fetch origin
git log HEAD..FETCH_HEAD
git diff HEAD FETCH_HEAD -- src/

MERGE_HEAD und CHERRY_PICK_HEAD

cat .git/MERGE_HEAD
git rev-parse --verify MERGE_HEAD && echo "merge in progress"

REVERT_HEAD, BISECT_*

Ahnliche Marker existieren fur revert (REVERT_HEAD), bisect, rebase und AM.

Reflog-Selektoren

git reset --hard HEAD@{1}
git checkout @{-1}
git checkout -

Haufige Fehler

ORIG_HEAD mit dem Reflog verwechseln.

Praktischer Recovery-Flow

git reflog
git branch rescue HEAD@{14}
git reset --hard rescue