Menu
Coddy logo textTech

Git Revert

Ultimo aggiornamento

git revert annulla un commit creando un nuovo commit che applica l'inverso delle sue modifiche. Siccome aggiunge cronologia invece di riscriverla, il revert è il modo sicuro per annullare un commit già inviato con push: a differenza di git reset, non costringe tutti gli altri a riconciliare un branch riscritto.

Prova questi comandi nel terminal playground: una vera shell nel tuo browser, senza installare nulla.

git revert lascia al suo posto il commit sbagliato e aggiunge un nuovo commit che ne applica l'inverso: la cronologia non viene mai riscritta.

Sintassi

ComandoCosa fa
git revert HEADFa il revert del commit più recente
git revert <hash>Fa il revert di un commit specifico tramite hash
git revert HEAD~2..HEADFa il revert di un intervallo di commit
git revert -n <hash>Fa il revert senza committare (solo staging)
git revert -m 1 <merge-hash>Fa il revert di un commit di merge, tenendo il genitore 1

Durante un revert

Se il revert incontra un conflitto, risolvilo e continua.

ComandoCosa fa
git revert --continueRiprende dopo aver risolto i conflitti
git revert --abortAnnulla il revert in corso
git revert --skipSalta il commit corrente e continua

revert vs reset

Comportamentogit revertgit reset
Riscrive la cronologiaNoSì
Sicuro sui commit già inviatiSìNo
Crea un nuovo commitSìNo
Annulla un commit nel mezzoSìScomodo

Domande frequenti su git revert

Che differenza c'è tra git revert e git reset?
git revert aggiunge un nuovo commit che annulla le modifiche di uno precedente, lasciando intatta la cronologia: è sicuro per i commit di cui hai già fatto push. git reset sposta indietro il puntatore del branch e riscrive la cronologia, cosa che va bene per i commit locali ma è pericolosa sui branch condivisi. Usa revert per annullare commit pubblici e reset per quelli locali.
Come faccio il revert di un commit già inviato?
Esegui git revert <hash> (o git revert HEAD per il più recente), poi fai il push del nuovo commit di revert. Siccome il revert non riscrive la cronologia, è il modo corretto per annullare un commit condiviso: niente force push e nessun disagio per i colleghi che l'hanno già scaricato.
Come faccio il revert di un commit di merge?
Un commit di merge ha due genitori, quindi Git deve sapere quale linea di cronologia tenere. Usa git revert -m 1 <merge-hash>, dove -m 1 dice a Git di tenere il primo genitore (di solito il branch in cui hai fatto il merge). Il revert di un merge annulla le modifiche unite ma lascia il merge nella cronologia.
Posso fare il revert di più commit insieme?
Sì. Passa un intervallo come git revert HEAD~2..HEAD per annullare gli ultimi due commit, oppure elenca più hash. Per impostazione predefinita Git crea un commit di revert per ogni commit annullato; aggiungi -n per mettere in staging tutte le inversioni senza committare, poi fai tu un unico commit.
Posso esercitarmi online?
Sì. Apri il terminal playground per eseguire git revert in una vera shell nel tuo browser, senza installare nulla. Il corso interattivo gratuito di Git di Coddy spiega anche come annullare le modifiche passo dopo passo.
Illustrazione dei linguaggi di programmazione di Coddy

Impara Git con Coddy

INIZIA