Uma solicitação pull chega ao meu repo hospedado no Github. Por padrão, é mesclado com omaster
ramificação.
Existe alguma maneira de alterar em qual branch as alterações seriam mescladas?
fonte
Uma solicitação pull chega ao meu repo hospedado no Github. Por padrão, é mesclado com omaster
ramificação.
Existe alguma maneira de alterar em qual branch as alterações seriam mescladas?
A partir de 15/08/2016, o GitHub permite alterar o branch de destino de uma solicitação pull por meio da GUI. Clique Edit
ao lado do título e selecione o ramo no menu suspenso.
Agora você pode alterar o branch base de uma solicitação de pull aberta. 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. Alterando o branch base de sua solicitação de pull original em vez de abrir um novo com o branch base correto, você poderá manter um trabalho e discussão valiosos.
O remetente pode alterar isso ao emitir a solicitação pull, mas depois de emitir, você não pode alterá-la.
Por outro lado, você pode mesclar manualmente seu branch e push, o que eu faço quase regularmente para solicitações pull mal direcionadas.
Você pode encontrar o
hub
gema útil para trabalhar com os componentes da solicitação pull.Essa gema encerra o processo manual, que é:
git checkout ${target_branch} && git merge ${remote}/${branch}
git push origin ...
fonte
git merge --no-ff ...
como @GuillermoMansilla menciona em sua resposta.Uma alternativa ao uso da gema do hub mencionada por outras respostas é usar a linha de comando para mesclar solicitações de pull local , o que permite que você faça:
Os comandos acima funcionam diretamente se você adicionar primeiro a seguinte linha ao seu
.git/config
arquivo:O que isso faz é permitir que você baixe TODAS as solicitações de pull. Como isso pode não ser desejado para repositórios enormes, o GitHub modificou as instruções para apresentar a
git fetch origin pull/ID/head:BRANCHNAME
sintaxe, o que evita a modificação do arquivo de configuração e baixa apenas aquele único pull request.fonte
Embora você não possa alterar a solicitação pull existente, pois ela não é sua, você pode facilmente criar uma nova se o repositório de origem relacionado ainda existir - sim, mesmo se for de outra pessoa.
Vá para o repositório do remetente e crie uma nova solicitação pull em seu repositório usando os mesmos commits, mas certifique-se de definir o branch de destino correto corretamente.
Em seguida, volte para seu próprio repositório e aceite a nova solicitação de pull. Voila!
fonte
Não há nada de errado com a solução de Daniel Pittman, no entanto, eu trataria essas mesclagens como "sem avanço rápido", ou seja, alterando a etapa número 3 para:
Com o uso
--no-ff
, o histórico ficará mais fácil de ler. Isso vai dizer claramente que os$n
commits vieram$branch
, e também tornará sua vida mais fácil se você precisar reverter algo feito naquele branch.Para responder também à pergunta do eoinoc e dar uma dica adicional:
Depois de fazer a mesclagem, seu git cli solicitará que você escreva uma mensagem, geralmente uma mensagem genérica aparecerá dizendo algo como
Certifique-se de editar essa mensagem e incluir uma referência ao número da solicitação pull. Isto é: (assumindo que o número da solicitação pull seja 123)
Então, da próxima vez que você visitar sua página de questões / solicitações de pull do github e verificar aquela solicitação de pull em particular, verá sua mensagem com um link para confirmar onde você fez a fusão.
Aqui está uma imagem do que quero dizer.
fonte
Para fazer isso, vá para a página inicial do seu repositório, clique nos ramos e mude o ramo padrão de master para outra coisa, no meu caso "dev".
Depois disso, sempre que alguém criar uma solicitação pull, o
merge
botão mesclará automaticamente a solicitação em "dev" em vez de master.fonte