Git revert commit – Come rimuovere l'ultimo commit fatto

McAle - Jun 30 - - Dev Community

Fonte: Git Revert Commit – How to Undo the Last Commit

Voglio riportare due metodi per poter ripristinare il proprio codice quando per sbaglio del codice errato è stato commitatto o se si ha sbagliato branch di destinazione.

Il comando revert

Il comando revert, dopo aver specificato il commit da dover rimuovere, creerà un altro commit che farà le operazioni opposte alle tue ultime modifiche, ripristinando il codice al suo stato iniziale.
Puoi usarlo in questo modo:

git revert <commit_SHA_to_revert>
Enter fullscreen mode Exit fullscreen mode

Puoi trovare lo SHA del commit che vuoi rimuovere utilizzando git log. Il primo commit che verrà visualizzato è l'ultimo commit che è stato creato. Dopo aver individuato il commit, puoi copiare lo SHA e usarlo nel comando indicato precedentemente.

Il comando reset

Il comando reset è più immediato perchè non c'è bisogno dello SHA del commit per eseguirlo, ma devi prestare molta più attenzione a usarlo, perchè verrà cambiata la history dei commit.
L'operazione fatta dal comando reset sposterà il puntamento alla HEAD del branch corrente e scarterà tutto il resto che è stato fatto dopo.
Puoi usarlo in questo modo:

git reset --soft HEAD~1
Enter fullscreen mode Exit fullscreen mode

L'opzione --soft significa che non perderai i cambiamenti non aggiunti a un commit che potresti avere.

Se invece vuoi ripristinare l'ultimo commit rimuovendo anche tutte le modifiche non presenti in un commit puoi usare l'opzione --hard

git reset --hard HEAD~1
Enter fullscreen mode Exit fullscreen mode

Dovresti utilizzare reset o revert?

Dovresti utilizzare reset solo se il commit che devi rimuovere esiste solo localmente e non hai ancora eseguito un push per caricare il codice nel repository.
Questo comando cambia la history dei commit e potrebbe sovrascrivere delle modifiche importanti per altri membri del team che stanno lavorando sullo stesso progetto.

Viceversa revert crea un nuovo commit che rimuove le modifiche, così se il commit da togliere è già stato caricato nel repository, è meglio utilizzare un revert che non cambia o non rischia di sovrascrivere la history dei commit.

. . .