DEV Community

Cover image for Git revert commit – Come rimuovere l'ultimo commit fatto
McAle
McAle

Posted on

1

Git revert commit – Come rimuovere l'ultimo commit fatto

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.

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay