Resolvendo Conflitos de Pull Request

Visão geral

Este artigo explica os motivos por trás de conflitos em Pull Requests e os cenários comuns em que eles ocorrem. Também fornece instruções detalhadas e passo a passo para revisar e resolver esses conflitos de forma eficaz.

O que causa um conflito em Pull Request?

Um conflito em Pull Request pode ocorrer quando dois branches têm commits que afetam a mesma linha de código, e o Pull Request não consegue determinar automaticamente qual linha deve ser preservada. Para ilustrar como isso pode acontecer, veja o diagrama abaixo.

Neste exemplo, branch_b é criado a partir de branch_a. Em seguida, uma alteração que afeta a função myName é commitada em branch_b, e uma alteração diferente na função é commitada em branch_a. Quando um Pull Request é criado para mesclar branch_b em branch_a, o pull request detecta que a mesma linha de código foi alterada em ambos os branches, resultando em um conflito. Na seção seguinte, você verá duas opções diferentes para resolver o conflito.

Como resolver um conflito em Pull Request?

Quando um Pull Request encontra um conflito, você pode resolvê-lo mantendo ou sobrescrevendo as alterações do target. Para múltiplos conflitos, trate cada um separadamente usando o método mais apropriado; tudo bem usar abordagens diferentes para conflitos distintos.

chevron-rightManter as alterações do Targethashtag

Para resolver conflitos usando este método, faça commit das linhas conflitantes do branch de destino no branch de origem . Veja o diagrama para uma ilustração e consulte as instruções passo a passo fornecidas na Resolvendo Conflitos de Pull Request seção abaixo.

circle-info

Este método usa a função Resolver Conflitos em um Pull Request para commitar automaticamente as alterações no branch de origem.

chevron-rightSobrescrever as alterações do Targethashtag

Para resolver conflitos usando este método, faça commit das linhas conflitantes do branch de origem no branch de destino . Veja o diagrama para uma ilustração e consulte as instruções passo a passo fornecidas na Resolvendo Conflitos de Pull Request seção abaixo.

circle-info

Este método exige que você faça commit manualmente das alterações do branch de origem no branch de destino branch.

Resolvendo Conflitos

1

Conflitos em Pull Request

Quando um Pull Request é criado, uma verificação de conflitos é executada inicialmente. Se forem encontrados conflitos entre os Alvo e Origem branches, um aviso será exibido e você deve resolver os conflitos antes que o Pull Request possa ser mesclado.

2

Revisar Conflitos

  1. Clique em Resolver conflitos.

  2. Clique em um componente para ver os conflitos.

circle-exclamation
  1. Revise o código em conflito no componente e determine como resolver o conflito.

circle-info

Veja a Resolvendo Conflitos de Pull Request seção acima para uma explicação sobre conflitos em Pull Request.

  1. Existem duas maneiras de resolver um conflito em Pull Request. Veja as seções a seguir para instruções sobre como executar cada uma.

    1. Manter as alterações do Target: Este método preserva o código do target fazendo commit das linhas conflitantes do branch de destino no branch de origem branch.

    2. Sobrescrever as alterações do Target: Este método preserva o código da origem fazendo commit das linhas conflitantes do branch de origem branch para o branch de destino branch.

circle-info

Para múltiplos conflitos, trate cada um separadamente usando o método mais apropriado; tudo bem usar abordagens diferentes para conflitos distintos.

3

Manter as alterações do Target

Este método usa a Resolver conflitos recurso embutido em um Pull Request.

  1. Clique em um componente com conflitos para resolver.

  2. Clique em Aceitar tudo para reter todas as linhas, ou clique na Seta Direita para cada linha a ser mantida. Isso copia a linha selecionada do branch de destino para o branch de origem.

  3. Uma vez que todas as alterações necessárias tenham sido feitas no branch de origem, clique em Resolver. Isso marca um componente como Resolvido para que você possa acompanhar suas alterações.

  4. Clique em Voltar.

circle-info

Repita esse processo para todos os componentes com conflitos.

  1. Uma vez que todos os componentes estejam marcados como Resolvido, clique em Resolver conflitos.

  2. Digite uma Mensagem de commit.

  3. Clique em Resolver.

  4. Após resolver os conflitos, o Pull Request verificará os conflitos novamente.

  5. Se não houver mais conflitos, a mensagem do Pull Request ficará verde e informará "Este branch pode ser mesclado".

circle-info

Se os conflitos persistirem no Pull Request, revise e resolva-os. Repita até que todos os problemas sejam resolvidos.

4

Sobrescrever as alterações do Target

Este método requer editar manualmente e commitar alterações no branch de destino.

circle-info

Para facilitar a resolução de conflitos ao sobrescrever alterações no branch de destino, observe as linhas e componentes específicos que causam conflitos enquanto revisa o Pull Request.

  1. Clique em Código no menu lateral esquerdo.

  2. Clique no branch de destino branch do Pull Request.

  3. Clique no Três pontos verticais no final direito de um componente com conflitos no Pull Request.

  4. Clique em Editar.

  5. Edite a linha ou linhas conflitantes do código para corresponder ao branch de origem branch.

  6. Clique em Confirmar alterações.

  7. Digite uma Mensagem de commit.

  8. Clique em Commit.

circle-info

Repita esse processo para todos os componentes com conflitos.

  1. Uma vez que todos os componentes com conflitos sejam editados para corresponder ao branch de origem branch, retorne ao Pull Request.

  2. Clique em Pull requests no menu lateral esquerdo.

  3. Clique no Pull Request para verificar se todos os conflitos foram resolvidos.

  4. Se não houver mais conflitos, a mensagem do Pull Request ficará verde e informará "Este branch pode ser mesclado".

circle-info

Se os conflitos persistirem no Pull Request, revise e resolva-os. Repita até que todos os problemas sejam resolvidos.

Atualizado

Isto foi útil?