Introduzione
Git tiene diversi ref speciali "ausiliari" in .git/ per registrare lo stato durante operazioni multi-step. Conoscerli trasforma recuperi spaventosi in one-liner.
ORIG_HEAD
ORIG_HEAD viene impostato ogni volta che un'operazione "pericolosa" sposta HEAD di molto: merge, rebase, reset, am. Cattura la punta precedente così puoi disfare:
git merge feature
# decidi che era un errore
git reset --hard ORIG_HEAD
Stesso trucco dopo un brutto rebase o reset: