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?

Muaz Al-Jarhi
la source

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

MBO
la source
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.

VonC
la source
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
20

La solution la plus simple que j'ai trouvée pour cela:

git commit -m "fixing merge conflicts"
git push
user3127648
la source
En fait pour moi -m n'a pas fonctionné, cela a fonctionné sans -m.
Aleksandar Pavić
@ Muaz-Al-Jarhi Vous devriez regarder la réponse de
user3127648
Pouvez-vous expliquer ce que cela fait?
Billal Begueradj
-m est juste le drapeau pour inclure un message
atamata
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

Solutions Cebu CM
la source
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

Nirju
la source
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