Resolvendo conflitos de merge
Esta é a última aula do curso, e é o momento de te tranquilizar de uma vez por todas: um conflito de merge não é um erro nem um fracasso — é uma parte completamente normal do trabalho em equipa. Na maior parte do tempo, o Git mescla mudanças que não se sobrepõem sozinho, em silêncio, sem te pergunta
Um conflito de merge é como duas pessoas escrevendo a lápis na mesma linha de uma página. O Git tenta combinar todo mundo, mas na linha que se sobrepõe ele não ousa adivinhar — ele empilha as duas versões uma acima da outra e pede para você escolher qual fica. No momento em que você escolhe e apaga os marcadores — a disputa acaba.
- Conflito de merge (merge conflict)
- Quando dois branches mudaram as mesmas linhas do mesmo ficheiro, o Git não consegue mesclar automaticamente. Ele marca as duas versões e pede para você escolher. Isso é normal, não um erro.
- Marcadores de conflito (conflict markers)
- As linhas que o Git escreve dentro do ficheiro: <<<<<<< para o início do seu lado (HEAD), ======= como divisor, e >>>>>>> para o início do outro lado. As três precisam ser apagadas no final.
- HEAD (seu lado)
- Em um conflito, o bloco entre <<<<<<< HEAD e ======= é a versão do branch em que você está agora — 'o meu lado'.
- Merge automático (auto-merge)
- Quando as mudanças de dois branches não tocam nas mesmas linhas, o Git as mescla sozinho, sem perguntar. A maioria dos merges acontece assim, em silêncio, sem nenhum conflito.
- Resolver (resolve)
- O processo: abrir o ficheiro, escolher o que fica (um lado, o outro, ou uma combinação), apagar todos os marcadores, depois git add <file> e git commit para finalizar o merge.