Annullare ultimo commit in Git

Se sei interessato ad imparare Git, abbiamo una guida che fa al caso tuo.

Oh no, presi dalla frenesia abbiamo modificato nuovamente quel file dopo il commit.

Per annullare l’ultimo commit eseguito e riportare i file fuori dallo stage come file modificati e unstaged, non esiste un comando ufficiale. Dobbiamo quindi effettuare un reset e rieseguire il commit. Vediamo come:

Dopo il nostro commit “sbagliato”, eseguiamo un git reset in in questo modo:

Questo comando dice a git di lasciare la nostra directory di lavoro com’era prima dell’ultimo commit e lo annulla. A questo punto riavrete i file come unstaged proprio come se fossimo tornati in dietro nel tempo. A questo punto eseguiamo le modifiche che desideriamo ed aggiungiamoli con git add:

A questo punto eseguiamo il commit delle modifiche riusando il vecchio messaggio di commit. Il comando git reset  ha, a tutti gli effetti, spostato il “vecchio” HEAD  in .git/ORIG_HEAD :

Se volessimo riscrivere il messaggio di commit e non utilizzare quello precedente, possiamo indicare il flag -c  (quindi minuscola): si aprirà un editor in cui scrivere il nuovo messaggio di commit.