Como concluir a fusão de um arquivo?


103

Depois de mesclar um arquivo no Git, tentei extrair o repositório, mas ocorreu um erro:

Você não concluiu sua fusão. (MERGE_HEAD existe)

Como alguém conclui uma fusão?

Respostas:


94

Verifique o status ( git status) do seu repositório. Cada arquivo não mesclado (depois de resolver os conflitos por você mesmo) deve ser adicionado ( git add), e se não houver nenhum arquivo não mesclado você devegit commit


11
Mas e se tudo estiver confirmado ( git statusmostra um diretório de trabalho limpo) e o erro acima ainda ocorre?
Marius Soutier

1
@Marius Certifique-se de executar o padrão git statuse não algum alias que filtre qualquer mensagem. Na versão atual, quando você executa git status, ele mostra a mensagem o que você deve fazer para "concluir a fusão". E se você estiver absolutamente certo de que tudo foi mesclado e não perderá nada, você pode simplesmente remover os arquivos em .git / MERGE *, que armazenam o que você tentou mesclar e a mensagem de confirmação padrão para essa mesclagem
MBO

1
Obrigado, isso é o que eu finalmente fiz, mas de alguma forma, isso parece estar cheio de erros. Como pode existir um MERGE_HEAD se você fundiu e confirmou tudo?
Marius Soutier

2
Sim, eu simplesmente tive o mesmo problema que Marius, fiz uma fusão, resolvi os conflitos, mas nada a comprometer agora (de alguma forma). Tive que excluir manualmente os arquivos MERGE * conforme sugerido.
Simon East

@johndpope power ("tnx", 100)
knagode de

31

Nota e atualização:

Desde Git1.7.4 (janeiro de 2011), você tem git merge --abort, sinônimo de " git reset --merge" quando uma fusão está em andamento.

Mas se você quiser completar a fusão, enquanto de alguma forma nada resta a ser adicionado, então um bruto rm -rf .git/MERGE*pode ser o suficiente para o Git esquecer a fusão atual.


se você remover MERGE_HEAD, o commit resultante não terá apenas um pai, então você não terá o histórico do branch mesclado?
Jason Goemaat

@JasonGoemaat considerando que tentamos abortar a fusão, não haveria um "commit resultante" de qualquer maneira.
VonC


1

Se você encontrar esse erro no SourceTree, vá para Actions> Resolve Conflicts> Restart Merge.

A versão do SourceTree usada é 1.6.14.0


0

Eu tive o mesmo erro e segui o artigo encontrado no google resolve meu problema. Você não concluiu sua fusão


Um link para uma solução é sempre bem-vindo, mas adicione as informações essenciais à sua resposta, pois o link pode estar desatualizado.
slfan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.