Télécharger la demande de pull Github en diff unifié

278

Comment puis-je télécharger les modifications contenues dans une demande d'extraction Github en tant que diff unifié?

Thilo
la source
Normalement, le lien du patch PR est envoyé à la personne qui accepte le PR.
kenorb
Ce n'est pas encore implémenté dans GitLab , mais j'ai créé une demande de fonctionnalité, alors veuillez y ajouter vos votes.
colan

Réponses:

487

Pour afficher un commit sous forme de fichier diff / patch, ajoutez simplement .diffou .patchà la fin de l'URL, par exemple:

Simone Carletti
la source
13
Grand merci. Et il y en a aussi .patch. Pourquoi cela n'est-il pas exposé dans l'interface graphique? Comment est-on censé découvrir cela?
Thilo
45
Il n'est pas documenté pour maintenir le stackoverflow dans l'entreprise. Honnêtement, c'est FAQ # 2
sehe
C'est aussi parce que git pullc'est la méthode préférée pour télécharger et appliquer les modifications.
Tekkub
Ooooh, merci, cette réponse vaut de l'or. (Cette publication de blog aussi.) Je me demande comment une personne saine d'esprit peut travailler sans cela, et pourquoi elle n'est pas exposée dans l'interface utilisateur Web assez merdique.
mirabilos
8
A en juger par ce que ces retours et les liens dans les documents sur developer.github.com/v3/media/… , l' .diffURL donne un diff direct à la branche par défaut basée sur la sortie git-diff git-scm.com/docs/git-diff , et l' .patchURL donne une concaténation des commits individuels dans le PR (chacun par rapport à leur commit parent) dans un format adapté à la messagerie électronique basé sur la sortie git-format-patch git-scm.com/docs/git-format-patch .
rakslice
49

Quelque peu lié, pour laisser git télécharger la requête pull 123 et la patcher mylocalbranchlocalement, exécutez:

git checkout -b mylocalbranch
git pull origin pull/921/head
thakis
la source
10
Ou pour obtenir la demande d'extraction sur une nouvelle branche PR git fetch origin pull/921/head:PR, puis fusionner avec votre branche actuelle, vous donnant une chance de revoir les changements git merge PR --no-commit --no-ff
MoonStom
4
La documentation complète est disponible sur help.github.com/articles/checking-out-pull-requests-locally
JBert
Cela vous oblige à configurer Git avec vos informations d'identification. Vous ne pouvez pas tester anonymement une modification proposée (comme vous pourriez le faire en appliquant un diff manuellement). Encore une autre instance de Git prenant un workflow simple et le rendant difficile.
2017
2

Pour obtenir les modifications PR dans votre référentiel local dans un état intermédiaire mais non engagé, vous pouvez donc consulter:

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

Et pour générer un fichier patch à partir de cela:

git diff --cached > pr123.diff    
Bill Hollings
la source