Passo a passo: Como resolver conflitos ao fazer merge de branches no Git

Conflitos de merge no Git ocorrem quando há mudanças incompatíveis entre branches. Eles precisam ser resolvidos manualmente antes da fusão do código.

Como resolver conflitos ao fazer merge de branches?

No Git, conflitos de merge ocorrem quando duas branches modificam a mesma linha de um arquivo de maneira diferente. O Git não consegue decidir automaticamente qual versão deve ser mantida, exigindo que o desenvolvedor resolva o conflito manualmente.

1. Iniciando um merge e identificando conflitos

Quando você tenta mesclar uma branch e há conflitos, o Git exibe uma mensagem informando quais arquivos precisam de resolução:

git merge minha-feature

Se houver conflitos, o Git indicará algo como:

CONFLICT (content): Merge conflict in arquivo.txt
Automatic merge failed; fix conflicts and then commit the result.

2. Como visualizar os arquivos em conflito

Para listar os arquivos que estão com conflitos, use:

git status

Os arquivos em conflito aparecerão como 'unmerged', indicando que precisam ser revisados manualmente.

3. Editando e resolvendo conflitos

Abra o arquivo em conflito e você verá algo assim:

<<<<<<< HEAD
Este é o conteúdo da branch atual
=======
Este é o conteúdo da branch mesclada
>>>>>> minha-feature

Aqui, a parte entre <<<<<<< HEAD e ======= representa a versão da branch atual, enquanto a parte entre ======= e >>>>>>> minha-feature representa a versão da branch que está sendo mesclada.

Edite o arquivo para manter apenas a versão correta e remova os marcadores (<<<<<<<, =======, >>>>>>>).

4. Adicionando os arquivos resolvidos e finalizando o merge

Depois de corrigir os conflitos, adicione os arquivos ao stage:

git add arquivo.txt

Agora, finalize o merge criando um commit:

git commit -m "Resolvendo conflito no arquivo.txt"

5. Dicas para evitar conflitos de merge

  • Mantenha sua branch sempre atualizada: Antes de iniciar o desenvolvimento, use git pull para garantir que sua branch esteja sincronizada.
  • Faça commits menores e frequentes: Isso reduz a chance de conflitos complexos.
  • Evite trabalhar no mesmo arquivo simultaneamente com outros desenvolvedores: Sempre que possível, divida o trabalho para minimizar conflitos.

Conflitos de merge no Git podem parecer assustadores para iniciantes, mas fazem parte do fluxo normal de desenvolvimento colaborativo. Eles ocorrem principalmente quando múltiplos desenvolvedores editam as mesmas partes do código simultaneamente e tentam mesclar suas mudanças.

Uma abordagem para evitar conflitos é seguir boas práticas como realizar merges frequentes, manter o código atualizado e dividir tarefas de forma organizada. Ferramentas como editores de código com suporte a Git (VS Code, IntelliJ, etc.) e plataformas como GitHub e GitLab oferecem assistentes para ajudar na resolução de conflitos, tornando o processo mais intuitivo.

Algumas aplicações:

  • Unir mudanças feitas em branches separadas
  • Facilitar a colaboração em equipes de desenvolvimento
  • Resolver edições conflitantes no código-fonte
  • Evitar a perda de trabalho ao integrar alterações
  • Garantir a integridade do código ao mesclar branches

Dicas para quem está começando

  • Antes de iniciar um merge, sempre atualize sua branch principal com 'git pull'.
  • Leia atentamente os marcadores de conflito no código para entender as diferenças.
  • Se um conflito for muito complexo, use ferramentas visuais como o GitKraken ou o VS Code.
  • Se algo der errado, você pode cancelar o merge com 'git merge --abort'.
  • Comunique-se com sua equipe para evitar que múltiplas pessoas editem o mesmo arquivo ao mesmo tempo.

Contribuições de Tatiane Freitas

Compartilhe este tutorial: Como resolver conflitos ao fazer merge de branches

Compartilhe este tutorial

Continue aprendendo:

Qual a diferença entre git merge e git rebase

O git merge e o git rebase são usados para combinar branches no Git, mas funcionam de formas diferentes, impactando o histórico do repositório.

Tutorial anterior

Como forçar a exclusão de uma branch no Git

O Git permite forçar a exclusão de branches locais e remotas que ainda não foram mescladas, utilizando os comandos corretos para evitar conflitos.

Próximo tutorial