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 Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 116 aulas
  • 4 projetos
  • 9h 23min

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

Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

2 Comentários
Oldest
Newest Most Voted
igo

Muito bom, me ajudou aqui deu tudo certo

Battisti

show!

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares