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>
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
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
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.
Top comments (0)