Skip to main content

Resolver um conflito de merge no GitHub

Você pode resolver conflitos de merge simples que envolvem alterações concorrentes na linha usando o editor de conflitos.

Você só pode resolver conflitos de merge no GitHub causados por alterações concorrentes na linha, como quando as pessoas fazem alterações diferentes na mesma linha do mesmo arquivo em diferentes branches no seu repositório Git. Para todos os outros tipos de conflito de merge, você deve resolver o conflito localmente na linha de comando. Para obter mais informações, confira "Como resolver um conflito de mesclagem usando a linha de comando".

Aviso: quando você resolve um conflito de mesclagem no GitHub, todo o branch base da solicitação de pull é mesclado no branch principal. Verifique se você deseja realmente fazer commit para esse branch. Se o branch do cabeçalho for o branch-padrão do seu repositório, você terá a opção de criar um novo branch para servir como o branch do cabeçalho para o seu pull request. Se o branch head estiver protegido, você não será capaz de mesclar sua resolução de conflitos nele, então você será solicitado a criar um novo branch head. Para obter mais informações, confira "Sobre os branches protegidos".

  1. Abaixo do nome do repositório, clique em Solicitações de pull. Seleção da guia Problemas e solicitações de pull

  2. Na lista "Pull Requests", clique na pull request que tem um conflito de merge que você deseja resolver.

  3. Na parte inferior da solicitação de pull, clique em Resolver conflitos. Botão Resolver conflitos de mesclagem

    Dica: se o botão Resolver conflitos for desativado, o conflito de mesclagem da solicitação de pull será muito complexo de ser resolvido no GitHub. Você deve resolver o conflito de merge usando um cliente Git alternativo, ou usando o Git na linha de comando. Para obter mais informações, confira "Como resolver um conflito de mesclagem usando a linha de comando".

    1. Decida se você deseja manter apenas as alterações do seu branch, manter apenas as alterações do outro branch, ou fazer uma nova alteração, que pode incorporar alterações de ambos os branches. Exclua os marcadores de conflito `<<<<<<<`, `=======`, `>>>>>>>` e faça as alterações desejadas na mesclagem final. ![Ver exemplo de conflito de mesclagem com marcadores de conflito](/assets/images/help/pull_requests/view-merge-conflict-with-markers.png)
  4. Se houver mais de um conflito de merge no arquivo, role para baixo até o próximo conjunto de marcadores de conflito e repita as etapas quatro e cinco para resolver o conflito de merge.

  5. Depois de resolver todos os conflitos no arquivo, clique em Marcar como resolvido. Clique no botão Marcar como resolvido

  6. Se você tiver mais de um arquivo com um conflito, selecione o próximo arquivo que deseja editar no lado esquerdo da página abaixo de "conflicting files" (arquivos conflitantes) e repita as etapas de quatro a sete até resolver todos os conflitos de merge da pull request. Seleção do próximo arquivo conflitante, se aplicável

  7. Depois de resolver todos os conflitos de mesclagem, clique em Fazer commit da mesclagem. Isso incorpora todo o branch base ao branch head. Botão Resolver conflitos de mesclagem

  8. Se solicitado, revise o branch presente no commit.

    Se o branch head for o branch padrão do repositório, você pode escolher atualizar este branch com as mudanças que você fez para resolver o conflito, ou criar um novo branch e usar isso como o branch head da pull request. Solicitar a revisão do branch que será atualizado

    Se você escolher criar um novo branch, digite um nome para o branch.

    Se o branch head de sua pull request estiver protegido, você deve criar um novo branch. Você não terá a opção de atualizar o branch protegido.

    Clique em Criar branch e atualizar minha solicitação de pull ou Entendi. Continuar atualizando o BRANCH. O texto do botão corresponde à ação que você está executando.

  9. Para mesclar sua solicitação de pull, clique em Mesclar solicitação de pull. Para obter mais informações sobre outras opções de mesclagem de solicitação de pull, confira "Como mesclar uma solicitação de pull".

Leitura adicional