Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git revert [-n] [-m <parent>] <commit>...

Descrizione

Il comando git revert crea un nuovo commit le cui modifiche sono l'inverso di quelle di un commit precedente. A differenza di git reset, non riscrive la storia — aggiunge un nuovo commit che annulla uno o più vecchi. Questo rende revert sicuro da usare su branch condivisi: i collaboratori vedono un chiaro commit di "undo" piuttosto che storia riscritta.

Per fare revert di un merge commit, usa -m 1 (o qualunque numero di parent) per specificare la "mainline" — il parent la cui prospettiva dovrebbe essere preservata. Fare revert di più commit in un singolo comando li applica come una serie di nuovi commit.

Nell'uso quotidiano, git revert si integra con alias e CI.

Capire il modello dati di Git aiuta a prevedere i risultati.

Opzioni comuni

OpzioneDescrizione
-n, --no-commitMette in stage le modifiche inverse senza committare.
-m <parent-number>Mainline parent per fare revert di un merge.
--continueRiprende dopo aver risolto i conflitti.
--abortCancella un revert in corso.
--skipSalta il commit corrente e va avanti.
-e, --editModifica il messaggio del commit di revert.

Esempi

git revert HEAD
# Annulla il commit più recente con un nuovo commit

git revert abc123..def456
# Fa revert di un range di commit

git revert -m 1 merge-sha
# Fa revert di un merge commit, mantenendo mainline

git revert -n HEAD~2
# Mette in stage un inverso senza committare ancora

Errori comuni

Fare revert di un merge previene il futuro re-merging dello stesso branch a meno che non si faccia anche revert del revert. Pianifica di conseguenza quando fai revert di feature merge. I conflitti durante il revert richiedono --continue o --abort, proprio come rebase.

Comandi correlati

git reset, git restore, git cherry-pick, git log