Skip to main content

Sobre conflitos de integração

Os conflitos de merge acontecem quando você faz merge de branches que têm commits concorrentes e o Git precisa da sua ajuda para decidir quais alterações incorporar n merge final.

Muitas vezes, o Git pode resolver diferenças entre branches e mesclá-los automaticamente. Normalmente, as alterações são em linhas diferentes, ou até mesmo em arquivos diferentes, o que facilita o entendimento do merge pelos computadores. No entanto, às vezes, há alterações conflitantes que o Git não pode resolver sem a sua ajuda. Geralmente, os conflitos de merge acontecem quando as pessoas fazem alterações diferentes na mesma linha do mesmo arquivo ou quando uma pessoa edita um arquivo e outra pessoa exclui o mesmo arquivo.

Você deve resolver todos os conflitos de mesclagem antes de mesclar um pull request em GitHub. Se houver um conflito de mesclagem entre o branch de comparação e o branch base na solicitação de pull, veja a lista dos arquivos com alterações conflitantes acima do botão Mesclar solicitação de pull. O botão Mesclar solicitação de pull é desativado até que você resolva todos os conflitos entre o branch de comparação e o branch base.

Como resolver conflitos de mesclagem

Para resolver um conflito de merge, é preciso editar manualmente o arquivo em conflito para selecionar as alterações que deseja manter no merge final. Há algumas maneiras diferentes de resolver um conflito de integração (merge):

  • Se o conflito de mesclagem for causado por alterações de linha concorrentes — como quando as pessoas fazem alterações diferentes na mesma linha do mesmo arquivo em branches diferentes do seu repositório Git — você poderá resolvê-lo usando o editor de conflitos em GitHub. Para saber mais, confira Resolvendo um conflito de mesclagem no GitHub.

  • Para todos os outros tipos de conflitos de fusão, você deve resolver o conflito em um clone local do repositório e fazer o push da alteração para o seu branch em GitHub. Você pode usar a linha de comando ou uma ferramenta como GitHub Desktop para dar push na alteração. Para saber mais, confira Resolver um conflito de merge usando a linha de comando.

  • Para qualquer tipo de conflito de mesclagem, se você tiver acesso a agente de nuvem Copilot e ele estiver habilitado para o repositório, clique em Corrigir com Copilot na caixa de mesclagem para que Copilot resolva os conflitos para você. Copilot analisará as alterações conflitantes, resolverá os conflitos e verificará se a compilação, os testes e o linter ainda são bem-sucedidos. Para saber mais, confira Examinar a saída de Copilot.

Se você tiver um conflito de mesclagem no terminal, não poderá fazer o push de suas alterações locais no GitHub até resolver o conflito de mesclagem localmente em seu computador. Se você tentar mesclar os ramos que têm um conflito de integração na linha de comando, aparecerá uma mensagem de erro. Para saber mais, confira Resolver um conflito de merge usando a linha de comando.

$ git merge BRANCH-NAME
> Auto-merging styleguide.md
> CONFLICT (content): Merge conflict in styleguide.md
> Automatic merge failed; fix conflicts and then commit the result

Leitura adicional