Resolver o erro: You have not concluded your merge (MERGE_HEAD exists) em git

Neste artigo você vai aprender a resolver o erro You have not concluded your merge (MERGE_HEAD exists) que acontece no git

You have not concluded your merge capa

Fala programador(a), beleza? Bora aprender mais sobre git e resolução de conflitos!

Basicamente o erro acontece por que o git pull que demos anteriormente falhou em unir os códigos, com os já presentes

E este conflito gerado não foi resolvido até este próximo pull, então é necessário resolver o problema para continuar com o git pull

Para isso você deve primeiramente abortar o merge:

git merge --abort

E então você precisa resolver o conflito atual no código, vendo o que está diferente do seu código com o que veio do pull

Quer aprender mais sobre git? Veja este curso gratuito:

Após a resolução você precisa commitar esta resolução:

git commit -a -m "Resolvendo conflito"
Formação Vibe Coding
Formação Recomendada

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

E por último realizar o pull novamente:

git pull

Agora o código virá corretamente do repo remoto, e você estará com o erro resolvido também 🙂

Conclusão

Neste artigo aprendemos a como resolver o erro: You have not concluded your merge

Que acontece quando o conflito de um merge anterior ainda não foi resolvido, e tentamos adicionar mais código

É que como se fosse uma trava de segurança para não aumentar o problema

No conteúdo do artigo descrevi o passo a passo para solucionar esta questão

Confira nossos cursos gratuitos no Youtube, com vídeos todos os dias!

Se inscreva e ative o sininho para receber as notificações e aprender mais ainda sobre desenvolvimento web!

Veja também nosso catálogo de cursos na Udemy, todos com exercícios e projetos práticos, nas mais diversas tecnologias

O link acima contém um cupom de desconto para os cursos!

Por que o git trava e não deixa você seguir?

O git não é chato à toa

Quando uma junção de código começa e não termina, ele guarda um sinalizador dizendo "tem merge aberto aqui", e é exatamente isso que o MERGE_HEAD exists está gritando pra você

Enquanto esse sinalizador estiver de pé, qualquer tentativa de trazer código novo vai ser recusada

Pensa no freio de mão do carro: enquanto ele está puxado, você pode pisar no acelerador o quanto quiser, o carro não anda

E isso é bom! Se o git deixasse passar, você ia empilhar conflito novo em cima de conflito velho, e aí sim vira aquele nó que ninguém desata

Abortar ou terminar o merge? Como escolher:

Antes de sair rodando comando, para um segundo e responde uma pergunta: você já mexeu nos arquivos em conflito?

Se você já abriu os arquivos, escolheu o que fica e o que sai, e só esqueceu de fechar a resolução, não joga fora esse trabalho… o caminho é concluir o que ficou pela metade

Se você nem começou, ou começou e se perdeu no meio do caminho, aí sim vale voltar o repositório pro estado de antes e recomeçar com calma

"Mas eu vou perder meu código se abortar?"

O que já estava commitado antes continua lá, abortar desfaz a junção em andamento, não o seu histórico

O que some é o rascunho da resolução que você digitou e ainda não fechou em commit, por isso aquela pergunta lá de cima importa tanto

Como saber se o conflito foi resolvido MESMO:

Erro clássico: a pessoa acha que resolveu, commita, e o marcador de conflito vai junto pro repositório 😅

Quando o git não consegue decidir sozinho, ele escreve os DOIS lados dentro do arquivo e deixa marcadores separando o que veio de cada versão

Resolver o conflito é escolher o que fica e apagar esses marcadores, não é só salvar o arquivo e seguir a vida

Então, antes de commitar, passa o olho em todos os arquivos que estavam em conflito e confirma que não sobrou nenhum pedaço duplicado ali no meio

Tome cuidado com arquivo gerado automaticamente (lockfile, arquivo de build), esses são os que mais passam batido… e o código volta a quebrar sem ninguém entender por quê

E hoje, com editor gráfico e IA no meio do caminho?

Este conteúdo nasceu numa época em que resolver conflito era você, o terminal e a paciência

Hoje boa parte da galera resolve conflito dentro do próprio editor, naquela visão lado a lado, ou joga os dois lados pro assistente de IA sugerir a junção

A boa notícia: a trava é exatamente a mesma

Não importa se quem escolheu as linhas foi você, o editor ou a IA, o git só libera o caminho quando aquela resolução vira commit

E fica o aviso do vibe coder responsável: leia o que a IA resolveu antes de aceitar

Merge é o momento em que duas intenções diferentes se encontram, e a IA não estava na reunião em que vocês decidiram qual das duas valia 😉

Como não cair nesse erro de novo:

Não saia do computador com merge aberto, é assim que o problema dorme e acorda pior no dia seguinte

Traga o código do repositório remoto ANTES de começar a mexer, não depois de duas horas de trabalho

Commits pequenos e frequentes: quanto menor o pedaço, menor o conflito e mais fácil escolher um lado

Apareceu conflito? Resolve na hora, enquanto você ainda lembra o que aquele código fazia

Antes de puxar tarefa nova, dá uma olhada em como o repositório está

Parece básico, mas é isso que separa quem vê esse erro uma vez por ano de quem vê toda semana

Leia também

Subscribe
Notify of
guest

2 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
igo

Muito bom, me ajudou aqui deu tudo certo

Battisti

show!

Formações

Formação SAAS com IA

Formação SAAS com IA

Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!

  • 291 aulas
  • 18 projetos
  • 24h 17min

Blog | Mais populares