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:
-
Manter a sua (Accept Current Change).
-
Manter a do colega (Accept Incoming Change).
-
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.