Como modificar uma solicitação pull no GitHub para alterar o branch de destino para mesclar?

117

Eu tenho uma solicitação de pull que está solicitando uma mesclagem no master de meu branch, mas o proprietário quer que eu altere a solicitação para mesclar em um branch diferente de meu branch.

Isso é possível? Quais são as soluções possíveis?

Moriarty
fonte

Respostas:

138

Atualização de agosto de 2016: Alterar o branch base de uma solicitação pull finalmente permite alterar esse branch.
(E isso fecha a edição 18 , que tinha 3 anos e mais de 1.500 comentários)

Depois de criar uma solicitação pull, você pode modificar o branch de base para que as alterações na solicitação pull sejam comparadas a um branch diferente.

insira a descrição da imagem aqui


Resposta original:

Como um PR não pode ser editado em termos de ramo (veja abaixo), a maneira mais fácil seria:

  • crie uma nova filial local em cima da sua filial atual
  • empurre aquele novo ramo
  • faça um novo PR com o destino certo.
  • feche o PR anterior
  • referencie a solicitação de pull "antiga" da nova; por exemplo. Supersedes #123(conforme comentado abaixo por Rivera )

(resposta original, válida apenas na criação do PR )

Você pode tentar e escolher outro ramo de base , como em " Alterando o intervalo de ramo e repositório de destino " (clicando no Editbotão no topo de uma página de PR)

https://github-images.s3.amazonaws.com/help/pull_requests/pull-request-review-edit-branch.png

A maneira mais fácil de pensar sobre a gama de ramos é esta:

  • o branch base é onde você acha que as mudanças devem ser aplicadas,
  • o ramo principal é o que você gostaria de aplicar.

Alterar o repositório de base muda quem é notificado sobre a solicitação de pull.
Todos que podem enviar para o repositório de base receberão uma notificação por email e verão a nova solicitação de pull em seu painel na próxima vez que fizerem login.

Se você selecionar como branch base aquele que o mantenedor original (o proprietário) deseja, seu PR deve se fundir de seu branch (inalterado) para o novo branch base.

VonC
fonte
@Moriarty Não tenho um PR em andamento, mas como o criador do PR, você não vê um botão Editar depois que seu PR é enviado?
VonC de
3
Sim, mas isso só me permite modificar o nome do PR. Estou assumindo que você não pode alterar diretamente a fusão de PR em branch no envio. Estou me perguntando se existe uma alternativa (maneira de mesclar um PR em outro ramo, independentemente).
Moriarty de
2
Há uma solicitação de recurso aberta para poder alterar o branch de destino de um PR: github.com/isaacs/github/issues/18
Jason Antman
1
Também é uma boa ideia fazer referência à solicitação de pull "antiga" a partir da nova (por exemplo, substitui # 123).
Rivera
1
@Shimmy Acho que não, não da interface web.
VonC
6

Se sua filial (ainda) está disponível remotamente, você não precisa criar uma nova filial localmente.

  • Selecione seu branch (que contém as alterações que você está enviando) diretamente no menu suspenso ou em "# branches" ( https://github.com/account/project/branches ).

  • Clique em "Nova solicitação de pull". Isso permite que você escolha uma nova ramificação de base (destino).

Aqui está uma captura de tela da nova interface do Github: insira a descrição da imagem aqui

Posso enviar um PR do branch UXcontra qualquer fork / branch --- não importa se eu já enviei um PR do branch UX.

mkcor
fonte
1
O botão verde "Nova solicitação de pull" foi movido para a página da lista de RP, no canto superior direito.
Golden Thumb
Não tenho certeza do que você quer dizer com "foi movido", mas sim, você pode encontrar o botão verde "Nova solicitação de pull" em ambos os lugares.
mkcor de
4

Agora você pode: https://github.com/blog/2224-change-the-base-branch-of-a-pull-request

"Agora você pode alterar o branch de base de uma solicitação de pull aberto. Depois de criar uma solicitação de pull, você pode modificar o branch de base para que as alterações na solicitação de pull sejam comparadas com um branch diferente. Alterando o branch de base de sua solicitação de pull original, em vez de abrir uma nova com o branch base correto, você poderá manter um trabalho valioso e discussão. "

MK.
fonte
2

Você deve criar uma nova solicitação pull conforme mencionado no documento do gibhub LINK

  1. Primeiro selecione New Pull request
  2. no compare pagelado esquerdo, selecione o target branchque deseja empurrar e do lado direito selecione obranch you already pushed .
  3. Atualize os detalhes do seu novo PR .
  4. Crie o PR
Ani Thettayil
fonte
-4

É muito simples. Basta clicar no PR cujo ramo base você deseja alterar. Encontre o botão "Fechar solicitação de pull" na parte inferior da página da web. Agora você pode recriar um novo PR normalmente - certifique-se de selecionar o branch base correto desta vez.

Polegar de ouro
fonte
Não vejo por que isso foi rejeitado. Isso funcionou totalmente bem para mim.
Wilt
3
Eu não votei contra. Mas vejo que essa resposta apenas repete as respostas mais antigas existentes (e o faz com menos qualidade).
Lars Blumberg
@LarsBlumberg Se você ler com atenção, deve notar que não é uma repetição, embora possa haver algumas sobreposições. Para mim, se (n -1) etapas, em vez de n etapas, podem resolver o problema, vale a pena compartilhar :-)
Golden Thumb
2
Se (n-1) as etapas omitem etapas úteis, como fechar o PR antigo e fazer referência ao novo, não vejo valor em repetir um subconjunto de etapas de uma resposta já existente. Especialmente quando a lista de menos etapas é mais difícil de ler devido à falta de formatação adequada.
Lars Blumberg