Muitas vezes, o Git pode resolver diferenças entre branches e mesclá-los automaticamente. Normalmente, as alterações estão em linhas diferentes ou em arquivos diferentes, portanto, o Git pode mesclá-las sem ajuda. Às vezes, as mudanças conflitantes precisam da sua ajuda. Conflitos de mesclagem geralmente ocorrem 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.
Conflitos de mesclagem bloqueiam a mesclagem porque o Git não pode escolher com segurança qual versão do conteúdo em conflito deve ser mantida. Você deve resolver todos os conflitos de mesclagem antes de mesclar um pull request em GitHub. Se o seu pull request tiver um conflito de mesclagem entre o ramo de comparação e o ramo base, o botão Merge pull request ficará desativado até que os conflitos sejam resolvidos.
Resolução de conflitos de mesclagem
Resolver um conflito de mesclagem significa escolher o conteúdo final que deve aparecer após a mesclagem das ramificações. A ferramenta certa depende do tipo de conflito.
-
Conflitos simples de linha geralmente podem ser resolvidos em GitHub. Consulte Resolving a merge conflict on GitHub.
-
Conflitos mais complexos devem ser resolvidos em um clone local e enviados novamente para a branch da pull request. Consulte Resolving a merge conflict using the command line.
-
Se você tiver acesso a agente de nuvem Copilot e ele estiver habilitado para o repositório, Copilot poderá ajudar a resolver conflitos na caixa de mesclagem. Consulte Usando Copilot agente de nuvem no GitHub.
Na linha de comando, o Git informa quando uma mesclagem não pode ser concluída automaticamente. Você não pode efetuar push do resultado mesclado até resolver o conflito e confirmar a resolução.
$ 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