Aprenda / Git e controle de versão

FundamentosAula 5 de 1416 min0% da trilha

Resolvendo conflitos de merge

O que acontece quando duas pessoas mudam a MESMA linha — e como resolver sem entrar em pânico.

Um conflito acontece quando duas branches mudam a mesma linha de um arquivo de jeitos diferentes — o git não sabe qual versão manter, e para o merge no meio, pedindo pra você decidir.

Como o conflito aparece no arquivo

terminal
git merge feature/nova-api
config.js — como o git marca o conflito
<<<<<<< HEAD
const API_URL = "https://api.producao.com";
=======
const API_URL = "https://api-v2.producao.com";
>>>>>>> feature/nova-api

Tudo entre <<<<<<< HEAD e ======= é a versão da sua branch atual; entre ======= e >>>>>>> feature/nova-api é a versão que veio de fora. Resolver significa editar o arquivo pra ficar do jeito certo, e apagar essas marcações.

Resolvendo

config.js — depois de resolver (decidiu manter a v2)
const API_URL = "https://api-v2.producao.com";
terminal — finalizando
git add config.js       # marca como resolvido
git commit                # finaliza o merge (o git já sugere uma mensagem)

Evitando conflito na origem

Conflito é mais comum quanto mais tempo uma branch fica sem sincronizar com main. Puxar (git pull) com frequência, e manter branches de vida curta (feature pequena, merge rápido) reduz drasticamente a chance de dois trechos de código colidirem.

Exercício

Depois de um git merge que gerou conflito em 2 arquivos, você já editou e resolveu os dois manualmente. Quais os próximos 2 comandos?

Quiz rápido

Quando um conflito de merge acontece?
O que fica entre <<<<<<< HEAD e ======= num arquivo com conflito?