Come concludere la tua unione di un file?


103

Dopo aver unito un file in Git, ho provato a estrarre il repository ma si è verificato un errore:

Non hai concluso la tua fusione. (MERGE_HEAD esiste)

Come si conclude una fusione?

Risposte:


94

Controlla lo stato ( git status) del tuo repository. Ogni file non unito (dopo aver risolto i conflitti da solo) dovrebbe essere aggiunto ( git add) e se non ci sono file non uniti dovrestigit commit


11
Ma cosa succede se tutto viene eseguito il commit ( git statusmostra una directory di lavoro pulita) e l'errore precedente si verifica ancora?
Marius Soutier

1
@Marius Assicurati di eseguire lo standard git statuse non qualche alias che filtra qualsiasi messaggio. Nella versione attuale, quando esegui git status, ti mostra un messaggio su cosa dovresti fare per "concludere l'unione". E se sei assolutamente sicuro di aver unito tutto e non perderai nulla, puoi semplicemente rimuovere i file in .git / MERGE *, che memorizzano ciò che hai provato a unire e il messaggio di commit predefinito per quell'unione
MBO

1
Grazie, è quello che ho fatto alla fine, ma in qualche modo sembra che ci siano dei bug. Come può esistere un MERGE_HEAD se hai unito e impegnato tutto?
Marius Soutier

2
Sì, ho appena avuto lo stesso problema di Marius, avevo fatto una fusione, risolto i conflitti, ma niente da impegnare ora (in qualche modo). Ho dovuto eliminare manualmente i file MERGE * come suggerito.
Simon East

@johndpope power ("tnx", 100)
knagode

31

Nota e aggiorna:

Da Git1.7.4 (gennaio 2011), hai git merge --abortanche " git reset --merge" quando è in corso una fusione.

Ma se vuoi completare l'unione, mentre in qualche modo non resta nulla da aggiungere, allora un grezzo rm -rf .git/MERGE*può essere sufficiente perché Git dimentichi l'unione corrente.


se rimuovi MERGE_HEAD, il commit risultante non avrà solo un genitore, quindi non avrai la cronologia del ramo unito?
Jason Goemaat

@JasonGoemaat considerando che proviamo ad interrompere l'unione, non ci sarebbe comunque un "commit risultante".
VonC


1

Se riscontri questo errore in SourceTree, vai su Azioni> Risolvi conflitti> Riavvia unione.

La versione di SourceTree utilizzata è 1.6.14.0


0

Ho avuto lo stesso errore e ho seguito l'articolo trovato su Google che risolve il mio problema. Non hai concluso la tua fusione


Un link a una soluzione è sempre il benvenuto, ma aggiungi le informazioni essenziali alla tua risposta poiché il link potrebbe non essere aggiornato.
slfan
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.