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