Comment conclure votre fusion d'un fichier?


103

Après avoir fusionné un fichier dans Git, j'ai essayé d'extraire le référentiel mais une erreur s'est produite:

Vous n'avez pas conclu votre fusion. (MERGE_HEAD existe)

Comment conclure une fusion?

Réponses:


94

Vérifiez le statut ( git status) de votre référentiel. Chaque fichier non fusionné (après avoir résolu les conflits par vous-même) doit être ajouté ( git add), et s'il n'y a pas de fichier non fusionné, vous devezgit commit


11
Mais que faire si tout est validé ( git statusaffiche un répertoire de travail propre) et que l'erreur ci-dessus se produit toujours?
Marius Soutier

1
@Marius Assurez-vous d'exécuter le standard git statuset non un alias qui filtre tout message. Dans la version actuelle, lorsque vous exécutez git status, il vous montre ce que vous devez faire pour "conclure la fusion". Et si vous êtes absolument sûr que tout a été fusionné et que vous ne perdrez rien, vous pouvez simplement supprimer les fichiers dans .git / MERGE *, qui stockent ce que vous avez essayé de fusionner, et le message de validation par défaut pour cette fusion
MBO

1
Merci, c'est ce que j'ai finalement fait, mais d'une manière ou d'une autre, cela semble être bogué. Comment un MERGE_HEAD peut-il exister si vous avez tout fusionné et validé?
Marius Soutier

2
Oui, j'avais juste le même problème que Marius, j'avais fait une fusion, résolu les conflits, mais rien à commettre maintenant (en quelque sorte). J'ai dû supprimer manuellement les fichiers MERGE * comme suggéré.
Simon East

@johndpope power ("tnx", 100)
knagode

31

Remarque et mise à jour:

Depuis Git1.7.4 (janvier 2011), vous avez également git merge --abort" git reset --merge" lorsqu'une fusion est en cours.

Mais si vous voulez terminer la fusion, alors qu'il ne reste rien à ajouter, un brut rm -rf .git/MERGE*peut suffire à Git pour oublier la fusion actuelle.


si vous supprimez MERGE_HEAD, le commit résultant n'aura-t-il pas qu'un seul parent et vous n'aurez donc pas l'historique de la branche fusionnée?
Jason Goemaat

@JasonGoemaat considérant que nous essayons d' annuler la fusion, il n'y aurait pas de "commit résultant" de toute façon.
VonC


1

Si vous rencontrez cette erreur dans SourceTree, accédez à Actions> Résoudre les conflits> Redémarrer la fusion.

La version SourceTree utilisée est 1.6.14.0


0

J'ai eu la même erreur et j'ai suivi l'article trouvé sur Google pour résoudre mon problème. Vous n'avez pas conclu votre fusion


Un lien vers une solution est toujours le bienvenu, mais veuillez ajouter les informations essentielles à votre réponse car le lien peut être obsolète.
slfan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.