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 merge antes de conseguir mesclar uma pull request no 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 pessoas fazem alterações diferentes na mesma linha do mesmo arquivo em diferentes branches no repositório Git, você pode resolvê-lo no GitHub usando o editor de conflitos. Para saber mais, confira Resolvendo um conflito de mesclagem no GitHub.
  • Para todos os outros tipos de conflitos de mesclagem, você deve resolver o conflito de mesclagem em um clone local do repositório e enviar a alteração para o seu branch em GitHub. Use a linha de comando ou uma ferramenta como o GitHub Desktop para efetuar push da alteração. Para saber mais, confira Resolver um conflito de merge usando a linha de comando.

Se você tiver um conflito de merge na linha de comando, não será possível efetuar push das alterações locais no GitHub até que o conflito de merge seja resolvido localmente no 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

  •         [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges)
    
  •         [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)
    
  •         [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line)
    
  •         [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-on-github)