Introduzione
Devi annullare delle modifiche? Devi ritornare a uno stato precedente? Git reset è un comando molto potente che permette di tornare indietro e riscrivere la storia.
I 3 tree di git
Per capire git reset cosa fa, dobbiamo avere ben presente i tre “tree” di git.
- Working Directory – La cartella di lavoro
- Index – Il contenuto del prossimo commit che verrà fatto.
- HEAD – Puntatore al branch attivo.
Git reset –soft
Questa è la prima variante del comando reset. Questa opzione sposta solamente HEAD al commit indicato col comando.
git reset commitid --soft
Git reset –mixed
Questa seconda variante è quella di default, quando non viene specificato altro. In questo modo git opera anche sull’INDEX. Viene quindi eseguito quanto fatto nella variante SOFT e in più viene riportato INDEX al contenuto del commit scelto.
git reset commitid --mixed
Git reset –hard
La terza variante, –hard, aggiunge un ulteriore step a quanto fatto dalla –mixed. Git opera anche nella working folder, riportandola al contenuto del commit indicato.
git reset commitid --hard