Menu
Coddy logo textTech

Git Abort Merge: annullare un merge

Ultimo aggiornamento

Se un git merge incontra dei conflitti e preferisci tornare indietro invece di risolverli, git merge --abort annulla il merge e riporta il branch esattamente allo stato in cui era prima di iniziare. È la via d'uscita pulita da un merge che è andato storto.

Un merge già completato si annulla in un altro modo, come vedi più sotto. Prova questi comandi nel terminal playground: una vera shell nel tuo browser.

git merge --abort annulla il merge con conflitti e riporta il branch allo stato precedente all'inizio del merge.

Sintassi

ComandoCosa fa
git merge --abortAnnulla un merge con conflitti, ripristina lo stato precedente
git reset --mergeEquivalente più vecchio: interrompe e reimposta il merge
git merge --quitEsce dal merge ma lascia la directory di lavoro com'è

Annullare un merge già terminato

È diverso dall'interruzione: il commit di merge esiste già.

SituazioneComando
Il merge è locale, senza pushgit reset --hard ORIG_HEAD
Il merge è già stato inviato con pushgit revert -m 1 <merge-hash>

Domande frequenti su git abort merge

Come annullo un merge in corso?
Esegui git merge --abort. Se un merge si è fermato per dei conflitti e non vuoi risolverli, questo comando annulla l'intera operazione e riporta il branch e la directory di lavoro esattamente come erano prima dell'inizio del merge.
Che differenza c'è tra git merge --abort e git reset --merge?
Fanno sostanzialmente la stessa cosa: annullano un merge in corso e ripristinano lo stato precedente. git merge --abort è il comando moderno pensato apposta; git reset --merge è il metodo più vecchio, che funziona ancora. Per chiarezza preferisci git merge --abort.
Come annullo un merge già completato?
In questo caso non si tratta di un abort, perché il commit di merge esiste già. Se il merge è solo locale, git reset --hard ORIG_HEAD riporta il branch dov'era prima del merge; funziona anche dopo un fast-forward, dove HEAD~1 non funzionerebbe. Scarta il lavoro non committato, quindi controlla prima git status. Se hai già fatto push del merge, usa git revert -m 1 <merge-hash> per annullarlo senza riscrivere la cronologia condivisa.
Interrompere un merge mi fa perdere le altre modifiche?
git merge --abort ripristina lo stato di subito prima del merge, quindi le modifiche del merge vengono scartate, ma il tuo lavoro già committato resta intatto. Se avevi modifiche non committate prima di avviare il merge, fai prima commit o stash: l'abort ripristina lo stato del commit precedente al merge.
Posso esercitarmi online?
Sì. Apri il terminal playground per eseguire git merge --abort in una vera shell nel tuo browser, senza installare nulla. Il corso interattivo gratuito di Git di Coddy spiega anche il merge e la risoluzione dei conflitti passo dopo passo.
Illustrazione dei linguaggi di programmazione di Coddy

Impara Git con Coddy

INIZIA