Articolo originale: How to undo changes in Git
Potresti già sapere che Git è come un sistema di punti di salvataggio. Quello che in genere impari con Git all'inizio è come salvare le tue modifiche ed eseguire un'azione di commit verso un repository remoto. Ma come fare per ripristinare una modifica e tornare a uno stato precedente?
È ciò che andremo a trattare all'interno di questo articolo.
Il contenuto di questo articolo è anche esposto in un video (risorsa in inglese) se preferisci imparare guardando invece che leggendo.
Locale contro Remoto
È più complicato ripristinare qualcosa che si trova già su remoto. Ecco perché vorrai mantenere le cose sulla tua macchina locale fino a quando sei praticamente sicuro che vadano bene.
Quattro scenari comuni
Tratteremo i quattro scenari seguenti:
- Eliminare modifiche locali
- Correggere il commit precedente
- Ripristinare lo stato del codice a un commit precedente
- Ripristinare un commit che è stato inviato al repository remoto
Nota: Nelle videate che seguono, ho usato il client Git Fork for Mac OS. Puoi fare altrettanto in altri client Git simili.
Scenario 1: Eliminare modifiche locali
In questo primo scenario ipotizziamo che hai effettuato alcune modifiche che non sono ancora state oggetto di commit, e vuoi eliminarle.
Diciamo di voler creare una nuova funzionalità. Aggiungeremo un poco di HTML e CSS al progetto:
<!--Nel file index.html-->
<div class="feature"></div>
/* Nel file CSS */
.feature {
font-size: 2em;
/* Altri stili */
}
Per eliminare queste modifiche:
- Vai all'area di staging
- Seleziona i file dai quali vuoi eliminare le modifiche
- Click destro sui file
- Seleziona "Discard changes"

Scenario 2: Correggere il commit precedente
In questo caso hai creato un commit ma hai dimenticato di aggiungere alcune modifiche e vuoi aggiungere dette modifiche nel messaggio di commit precedente.
- Vai all'area di staging
- Porta i file da inserire nel commit nell'area di staging
- Clicca sulla casella di spunta "Amend"
- Modifica il tuo messaggio di commit
- Esegui il commit

Scenario 3: Ritornare a un commit precedente
Hai già effettuato alcuni commit nel tuo repository locale. Decidi che non vuoi più questi commit e vuoi "caricare" i tuoi file da uno stato precedente.
- Vai a "Git History"
- Click destro sul commit verso il quale vuoi ritornare
- Seleziona "Reset
nome-branch
to here"

Nota: Puoi ritornare solo a commit che non sono stati ancora inviati al repository remoto.
Scenario 4: Annullare un commit che è stato inviato a un remoto
In questo caso hai un commit che è stato già inviato a un repository remoto e vuoi annullarlo.
Annullarlo significa ripristinare la situazione precedente creando un nuovo commit "al contrario". Se hai aggiunto una riga, questo commit la eliminerà. Se hai eliminato una riga, questo commit la aggiungerà nuovamente.
Per fare questo:
- Vai a Git history
- Click destro sul commit che vuoi annullare
- Seleziona "Revert commit"
- Assicurati che "
commit the changes
" sia spuntato. - Click su Revert


Altri scenari
GitHub ha un utile articolo che ti mostra come puoi ripristinare praticamente qualsiasi cosa con Git. Ti sarà utile qualora dovessi fronteggiare altre situazioni. Leggilo qui (risorsa in inglese).
Grazie per la lettura. Questo articolo ti è stato d'aiuto in qualche modo? In questo caso mi auguro che tu lo voglia condividere. Potresti aiutare qualcuno. Grazie!
Questo articolo è stato originariamente pubblicato sul mio blog.
Iscriviti alla mia newsletter se vuoi più articoli che ti aiutino a diventare uno sviluppatore migliore.