Skip to main content

Enterprise Server 3.20 está disponível no momento como versão candidata a lançamento.

Mesclar uma solicitação de pull

Faça o merge de uma pull request no ramo upstream quando o trabalho estiver finalizado. Qualquer pessoa com acesso push no repositório pode completar o merge.

Tool navigation

Sobre fusões de pull-request

Em uma pull request, você propõe que as alterações feitas em um branch head sejam mescladas em um branch base. Por padrão, qualquer pull request pode sofrer merge a qualquer momento, a menos que o branch head esteja em conflito com o branch base. No entanto, pode haver restrições sobre quando você pode mesclar um pull request em um ramo específico. Por exemplo, você só pode fazer merge de um pull request no branch padrão se as verificações de status necessárias estiverem passadas. Os administradores do repositório podem adicionar restrições como essa às ramificações usando regras de proteção de ramificação. Para saber mais, confira Sobre os branches protegidos.

Como alternativa às regras de proteção de branch, você pode criar conjuntos de regras. Os conjuntos de regras têm algumas vantagens em relação às regras de proteção de branches, como status, e melhor capacidade de detecção sem exigir acesso de administrador. Você também pode aplicar vários conjuntos de regras ao mesmo tempo. Para saber mais, confira Sobre os conjuntos de regras.

Você pode configurar um pull request para fazer merge automaticamente quando todos os requisitos de merge forem atendidos. Para saber mais, confira Mesclar automaticamente uma pull request.

Se o pull request tiver conflitos de mesclagem ou se você quiser testar as alterações antes de mesclar, busque o pull request localmente e mescle-o usando o terminal.

Você não pode realizar o merge de um rascunho de um pull request. Para obter mais informações sobre rascunhos de pull requests, confira Sobre solicitação de pull.

O repositório pode ser configurado para que o branch principal de um pull request seja excluído automaticamente quando você faz o merge de um pull request. Para saber mais, confira Gerenciar a exclusão automática de branches.

Observação

Se você excluir um branch de cabeçalho após o merge do seu pull request, o GitHub irá verificar se há quaisquer solicitações de pull no mesmo repositório que especificam o branch excluído como o branch base. O GitHub atualiza automaticamente quaisquer pull requests, alterando o branch base para o branch base do pull request mesclado. Para saber mais, confira Sobre ramificações.

As solicitações de pull são mescladas por meio da opção --no-ff, exceto as solicitações de pull que têm commits squash ou rebase, que são mescladas por meio da opção fast-forward.

Você pode vincular uma solicitação de pull a um problema para mostrar que uma correção está em andamento e fechar automaticamente o problema quando a solicitação de pull é mesclada. Para saber mais, confira Vinculando uma pull request a um problema.

Se você decidir que não deseja que as alterações em um ramo de tópico sejam incorporadas ao ramo upstream, feche a solicitação de pull sem mesclá-la.

Mesclar uma solicitação de pull

  1. Abaixo do nome do repositório, clique em Pull requests.

    Captura de tela da página principal de um repositório. Na barra de navegação horizontal, uma guia, rotulada como "Solicitações de pull", é destacada em laranja escuro.

  2. Na lista "Pull Requests", clique na solicitação de pull que deseja mesclar.

  3. Role a página até o final do pull request. Dependendo das opções de merge habilitadas em seu repositório, é possível:

    •     [Mescle todos os commits no branch base](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges) clicando em **Mesclar solicitação de pull**. Se a opção **Merge pull request** não for mostrada, clique no menu suspenso de merge e selecione **Criar um merge commit**.
      

      Captura de tela das opções de mesclagem para uma solicitação de pull. A seta usada para expandir o menu suspenso está contornada em laranja escuro.

    • Faça uma squash dos commits em um único commit clicando no menu suspenso de mesclagem, selecionando Squash e mesclar e clicando em Squash e mesclar.

    •     [Rebaseie os commits individualmente no branch base](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#rebase-and-merge-your-pull-request-commits) clicando no menu suspenso de mesclagem, selecionando **Rebase e mesclar** e clicando em **Rebase e mesclar**.
      

    Observação

    Rebase e mesclagem sempre atualizarão as informações do committer e criarão novos SHAs de commit. Para obter mais informações, confira Sobre as mesclagens de pull requests.

  4. Se solicitado, digite uma mensagem de commit ou aceite a mensagem padrão.

    Para obter informações sobre as mensagens de commit padrão para mesclagens squash, confira Sobre fusões de pull-request.

    Observação

    O seletor de email não está disponível para mesclagens de rebase, que não criam um commit de mesclagem ou para mesclagens squash, que creditam o usuário que criou a solicitação de pull como o autor do commit com squash.

  5. Clique em Confirmar mesclagem, Confirmar squash e mesclagem ou Confirmar rebase e mesclagem.

  6. Opcionalmente, exclua o branch. Isso mantém a lista de branches no seu repositório organizada.

Para mesclar uma solicitação de pull, use o subcomando gh pr merge. Substitua pull-request pelo número, pela URL ou pelo branch principal do pull request.

gh pr merge PULL-REQUEST

Siga as instruções interativas para realizar o merge. Para obter mais informações sobre os métodos de mesclagem que você pode escolher, confira Sobre fusões de pull-request.

Como alternativa, você pode usar sinalizadores para ignorar as instruções interativas. Por exemplo, esse comando fará a combinação por squash dos commits em um único commit com a mensagem de "my squash commit", faça o merge do commit combinado por squash no branch de base e exclua o branch local e o remoto.

gh pr merge 523 --squash --body "my squash commit" --delete-branch

Leitura adicional

  •         [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/reverting-a-pull-request)
    
  •         [AUTOTITLE](/desktop/keeping-your-local-repository-in-sync-with-github/syncing-your-branch) utilizando GitHub Desktop
    
  •         [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges)
    
  •         [AUTOTITLE](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts)