Baixe a solicitação de recebimento do Github como diff unificado

277

Como posso baixar as alterações contidas em uma solicitação de recebimento do Github como um diff unificado?

Thilo
fonte
Normalmente, o link do patch PR é enviado para a pessoa que está aceitando o PR.
kenorb
Isso ainda não foi implementado no GitLab , mas eu criei uma solicitação de recurso, portanto, adicione seus votos a ela.
Colan

Respostas:

486

Para visualizar uma confirmação como um arquivo diff / patch, basta adicionar .diffou .patchao final da URL, por exemplo:

Simone Carletti
fonte
13
Ótimo, obrigado. E tem também .patch. Por que isso não está exposto na GUI? Como se deve descobrir isso?
Thilo
45
Não está documentado para manter o fluxo de pilha nos negócios. Honestamente, essa é a FAQ # 2
sehe
Também porque git pullé o método preferido de baixar e aplicar as alterações.
Tekkub
Ooooh, obrigado, esta resposta vale ouro. (Isso também é postado no blog.) Gostaria de saber como alguém sensato pode trabalhar sem isso e por que não é exposto na interface de usuário da Web ruim o suficiente como está.
mirabilos
8
A julgar pelo que esses retornam e pelos links nos documentos em developer.github.com/v3/media/… , o .diffURL fornece uma comparação direta ao ramo padrão com base na saída git-diff git-scm.com/docs/git-diff , e o .patchURL fornece uma concatenação das confirmações individuais no PR (cada uma relativa à confirmação pai) em um formato adequado para envio por email com base na saída git-format-patch git-scm.com/docs/git-format-patch .
rakslice
49

Um pouco relacionado, para permitir que o git download puxe a solicitação 123 e a remova mylocalbranchlocalmente, execute:

git checkout -b mylocalbranch
git pull origin pull/921/head
thakis
fonte
10
Ou para obter a solicitação de recebimento em um novo ramo PR git fetch origin pull/921/head:PRe, em seguida, fundir-se com o seu ramo atual, dando-lhe a oportunidade de rever as mudanças git merge PR --no-commit --no-ff
MoonStom
4
A documentação completa está em help.github.com/articles/checking-out-pull-requests-locally
JBert
Isso requer que você configure o Git com suas credenciais. Você não pode testar anonimamente uma alteração proposta (como se aplicasse um diff manualmente). Mais uma instância do Git pegando um fluxo de trabalho simples e dificultando.
JWW
2

Para obter as alterações de relações públicas no seu repositório local em um estado intermediário, mas não confirmado, você pode revisar:

git pull origin pull/123/head --no-commit

E para gerar um arquivo de correção a partir disso:

git diff --cached > pr123.diff    
Bill Hollings
fonte