Annullare un git merge che non è stato ancora pushato

di Lorenzo Neri
0 commento 193 visualizzazioni

Nel tuo repository locale potresti aver fatto un merge per errore che per fortuna non hai ancora pushato. In questo articolo, scopriamo come annullarlo.

Prima di capire come annullare un git merge che non è stato ancora pushato, dobbiamo trovare il commit che hai fatto prima di eseguire il merge.

Come fare? Semplicemente così:

git reflog

Il comando “git reflog” a differenza di “git log” mostra tutti i commit in ordine di esecuzione, motivo per cui torna più “leggibile”.

Ciò detto, una volta individuato il commit precedente al merge, prendiamo il relativo HASH del commit e teniamola da parte. Ci servirà giusto ora.

git reset --hard HASH_Del_Commit

Diversamente, possiamo usare:

git reset --hard HEAD~1

In questo modo annulliamo l’esecuzione del merge.

Ora che abbiamo capito come annullare il git merge prima ancora di averlo pushato, c’è da tenere presente una cosa prima che tu vada nel panico.

Tutti i file modificati verranno ripristinati al loro stato.

Vediamo una strada alternativa per fare ciò.

git reset --merge ORIG_HEAD

In questo modo, oltre a risolvere tutto con un solo comando succede un’altra cosa interessante.

I file non vengono ripristinati inutilmente, inoltre l’opzione “–merge” reimposta l’indice e aggiorna i file del working tree.

Non solo: mantiene le modifiche che non sono state ancora aggiunte.

Siamo salvi insomma 😀

Potrebbero interessarti

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più