Sobre merges 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ê puder fazer merge de um pull request em um branch 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 forem aprovadas. Os administradores do repositório podem adicionar restrições como essa aos branches usando regras de proteção de branch. Para obter mais informações, confira "Sobre 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 obter mais informações, 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 obter mais informações, confira "Fazer merge automático de um pull request".
Se a solicitação de pull tiver conflitos de mesclagem ou se você quiser testar as alterações antes da mesclagem, faça check-out da solicitação de pull localmente e mescle-a usando a linha de comando.
Você não pode realizar o merge de um rascunho de um pull request. Para obter mais informações sobre rascunhos de solicitações de pull, 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 obter mais informações, confira "Gerenciar a exclusão automática de branches".
Note
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 com mesclagem squash ou com troca de base, que são mescladas por meio da opção de avanço rápido.
Você pode vincular uma solicitação de pull a um problema para mostrar que uma correção está em andamento e para fechar automaticamente o problema quando alguém mesclar a solicitação de pull. Para obter mais informações, confira "Vinculando uma pull request a um problema".
Se você decidir que não deseja que as alterações em um branch do tópico sejam mescladas com o branch upstream, feche a solicitação de pull sem mesclá-la.
Mesclar uma solicitação de pull
-
Abaixo do nome do repositório, clique em Solicitações de pull.
-
Na lista "Pull Requests", clique na pull request que deseja fazer merge.
-
Role a página até o final da solicitação de pull. Dependendo das opções de merge habilitadas em seu repositório, é possível:
-
Mescle todos os commits no branch base clicando em Mesclar solicitação de pull. Se a opção Mesclar solicitação de pull não for mostrada, clique no menu suspenso Mesclar e selecione Criar um commit de mesclagem.
-
Faça uma mesclagem squash dos commits em um só commit clicando no menu suspenso Mesclar, selecionando Fazer mesclagem squash e mesclar e clicando em Fazer mesclagem squash e mesclar.
-
Troque a base dos commits individualmente no branch base clicando no menu suspenso Mesclar, selecionando Trocar a base e mesclar e clicando em Trocar a base e mesclar.
Note
A troca de base e a mesclagem sempre atualizarão as informações do autor do commit e criarão SHAs de commit. Para obter mais informações, confira "Sobre as mesclagens de solicitações de pull".
-
-
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 merges de pull request".
-
Se você tiver mais de um endereço de email associado à sua conta em GitHub, clique no menu suspenso do endereço de email e selecione o email a ser usado como o endereço de email do autor do Git. Apenas endereços de e-mail verificados aparecem neste menu suspenso. Se você habilitou a privacidade do endereço de email, um email sem resposta será o endereço de email do autor de commit padrão. Para obter mais informações sobre a forma exata que o endereço de email sem resposta pode assumir, consulte "Configurar o endereço de e-mail do commit”.
Note
O seletor de email não está disponível para mesclagens de troca de base, que não criam um commit de mesclagem. Para as mesclagens squash, o seletor de email só será mostrado se você for o autor da solicitação de pull e tiver mais de um endereço de email associado à sua conta.
-
Clique em Confirmar mesclagem, Confirmar mesclagem squash e mesclagem ou Confirmar troca de base e mesclagem.
-
Opcionalmente, exclua o branch. Assim, a lista de branches do repositório ficará limpa.
Note
Para saber mais sobre GitHub CLI, confira "Sobre o a CLI do GitHub".
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 da solicitação de pull.
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 merges 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
- "Reverter uma pull request"
- "Sincronizar seu branch no GitHub Desktop" usando GitHub Desktop
- "Sobre merges de pull request"
- "Resolvendo conflitos de mesclagem"