Entender conflitos de merge é o que separa os iniciantes dos desenvolvedores experientes. Um conflito acontece quando o Git não consegue decidir automaticamente qual versão de uma linha de código deve prevalecer — geralmente porque duas pessoas alteraram a mesma linha em branches diferentes.

Aqui está um guia de como enfrentar e resolver isso de forma profissional.


O que é um Merge Conflict? Link para o cabeçalho

Imagine que você e um colega editaram o arquivo style.css na linha 10.

  • Você mudou a cor para Azul.

  • Seu colega mudou para Verde.

Quando você tenta unir essas versões, o Git para tudo e diz: “Eu não sei qual cor você quer manter. Escolha você!”


Como resolver na prática Link para o cabeçalho

1. Identificando o conflito Link para o cabeçalho

Ao rodar um git merge ou git pull, o terminal avisará que houve um conflito. Se você rodar git status, verá os arquivos em conflito listados como both modified.

2. Abrindo o arquivo Link para o cabeçalho

Ao abrir o arquivo no seu editor (como o VS Code), você verá marcações estranhas:

<<<<<<< HEAD
color: blue;  (Sua alteração local)
=======
color: green; (Alteração que está vindo da outra branch)
>>>>>>> feature/outra-branch
  • <<<<<<< HEAD: Início das suas mudanças.

  • =======: A “divisória” entre as duas versões.

  • >>>>>>>: O fim das mudanças da branch externa.

3. Escolhendo a versão Link para o cabeçalho

Você tem três opções:

  1. Manter a sua (Accept Current Change).

  2. Manter a do colega (Accept Incoming Change).

  3. Reescrever a linha para combinar as duas (Accept Both Changes ou edição manual).

4. Finalizando o processo Link para o cabeçalho

Depois de apagar as marcações (<<<<, ====, >>>>) e deixar o código como ele deve ser, você precisa avisar ao Git que resolveu o problema:

# Adicione o arquivo resolvido
git add style.css

# Finalize o merge
git commit -m "fix: resolve merge conflict em style.css"

Dica de Ouro: Ferramentas Visuais Link para o cabeçalho

Embora seja importante entender o que acontece no arquivo, a maioria dos editores modernos facilita muito esse trabalho.

  • VS Code: Ele destaca as cores e oferece botões clicáveis acima do conflito para você escolher a versão com um clique.

  • GitKraken / Sourcetree: São interfaces gráficas que mostram uma visão lado a lado (3-way merge), tornando quase impossível errar na escolha.


Como evitar conflitos frequentes Link para o cabeçalho

  • Puxe código cedo e sempre: Rode git pull com frequência para não deixar sua branch ficar muito atrás da branch principal.

  • Branches pequenas: Quanto menor a tarefa, menor a chance de alguém mexer exatamente no mesmo lugar que você.

  • Comunicação: Se for mexer em um arquivo central (como um index.js ou um arquivo de rotas), avise o time.