Comment puis-je vérifier une demande GitHub pull?
j'aimerais vérifier une requête pull précédemment créée (créée via l'interface web GitHub). J'ai cherché et j'ai trouvé différents endroits où A refs / pull ou refs / pull / pr
  mais quand j'ajoute  fetch = +refs/pull/*/head:refs/remotes/origin/pr/*  au fichier de configuration de git et que je fais un fetch de git  
Qu'est-ce que je fais de mal? GitHub devrait-il créer automatiquement le truc pull/xyz, ou dois-je configurer quelque chose?
12 réponses
pour récupérer un PR distant dans votre local repo,
git fetch origin pull/ID/head:BRANCHNAME
où ID est l'id de la requête pull et branchname est le nom de la nouvelle branche que vous voulez créer. Une fois que vous avez créé la branche, puis tout simplement
git checkout BRANCHNAME
cela ira chercher sans que vous ayez à nommer une branche:
git pull origin pull/939/head
Comment puis-je obtenir une demande de traction spécifique sur ma machine?
ce gist décrit ce qui se passe quand vous faites un git fetch:
évidemment, changez l'url github pour qu'elle corresponde à l'URL de votre projet. Il finit par ressembler à ceci:
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:joyent/node.git
    fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
récupérez maintenant toutes les demandes de pull:
$ git fetch origin
From github.com:joyent/node
 * [new ref]         refs/pull/1000/head -> origin/pr/1000
 * [new ref]         refs/pull/1002/head -> origin/pr/1002
 * [new ref]         refs/pull/1004/head -> origin/pr/1004
 * [new ref]         refs/pull/1009/head -> origin/pr/1009
...
pour vérifier une demande de traction particulière:
$ git checkout pr/999
Branch pr/999 set up to track remote branch pr/999 from origin.
Switched to a new branch 'pr/999'
 vous avez divers scripts listés dans  issues 259   pour automatiser cette tâche.  
     
Le projet    git-extras    propose la commande git-pr (implémentée en  PR 262  )  
   git-pr  (1) -- vérifie une demande de retrait Local  
  
  SYNOPSIS
git-pr <number> [<remote>]
git-pr clean
DESCRIPTION
crée une branche locale basée sur un numéro de demande GitHub pull, et passe à cette branche par la suite.
le nom de la télécommande. Par défaut,
origin.exemples
ceci correspond à la demande de traction
226deorigin:
$ git pr 226
remote: Counting objects: 12, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 12 (delta 3), reused 9 (delta 3)
Unpacking objects: 100% (12/12), done.
From https://github.com/visionmedia/git-extras
  * [new ref] refs/pull/226/head -> pr/226
Switched to branch 'pr/226'
je préfère aller chercher et sortir sans créer une branche locale et être dans HEAD detached state . Il me permet rapidement de vérifier la demande de traction sans polluer ma machine locale avec des branches locales inutiles.
  git fetch upstream pull/ID/head && git checkout FETCH_HEAD   
 où ID est un ID de requête pull et upstream où est la requête pull originale a été créé (il pourrait être origin , par exemple).  
j'espère que ça aidera.
en référence à la réponse de Steven Penny, il est préférable de créer une branche test et tester le PR. Alors, voici ce que vous feriez.
- créer une branche de test pour fusionner le PR en local. En supposant que vous êtes sur la branche principale:
   git checkout -b test   
- Obtenir le PR changements dans le test de la branche
   git pull origin pull/939/head:test   
Maintenant, vous pouvez tester en toute sécurité les changements sur cette branche de test locale (dans ce cas, nommée test ) et une fois que vous êtes satisfait, peuvent La fusionner comme d'habitude à partir de GitHub.
  j'ai accidentellement fini par écrire presque le même que celui fourni par git-extras. Donc, si vous préférez une seule commande personnalisée au lieu d'installer un tas d'autres commandes supplémentaires, il suffit de placer    ce git-pr fichier  quelque part dans votre  $PATH  et alors vous pouvez juste écrire:  
git pr 42
// or
git pr upstream 42
// or
git pr https://github.com/peerigon/phridge/pull/1
  si vous utilisez Github.com, cliquez sur "Pull requests", puis sur le lien "command line instructions".:
      
         
  le problème avec certaines des options ci-dessus, c'est que si quelqu'un pousse plus de commits vers le PR après avoir ouvert le PR, il ne vous donnera pas la version la plus mise à jour.
Pour moi ce qui a fonctionné le mieux est-aller à la PR, et appuyez sur 'Commits', faites défiler vers le    bas    pour voir le dernier hash de commit
      et puis il suffit d'utiliser la caisse git, i.e.
        
et puis il suffit d'utiliser la caisse git, i.e.  
  git checkout <commit number>   
dans l'exemple ci-dessus
  git checkout 0ba1a50   
 pour Bitbucket, vous devez remplacer le mot pull par pull-requests .  
  tout d'abord, vous pouvez confirmer le style de l'URL de la requête pull par la commande  git ls-remote origin .   
$ git ls-remote origin |grep pull
f3f40f2ca9509368c959b0b13729dc0ae2fbf2ae    refs/pull-requests/1503/from
da4666bd91eabcc6f2c214e0bbd99d543d94767e    refs/pull-requests/1503/merge
...
  comme vous pouvez le voir, c'est  refs/pull-requests/1503/from  au lieu de  refs/pull/1503/from   
alors vous pouvez utiliser les commandes de n'importe laquelle des réponses.
  vous pouvez utiliser la commande git config pour écrire une nouvelle règle à  .git/config  pour récupérer les requêtes de pull du dépôt:  
$ git config --local --add remote.origin.fetch '+refs/pull/*/head:refs/remotes/origin/pr/*'
et puis juste:
$ git fetch origin
Fetching origin
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 4 (delta 2), reused 4 (delta 2), pack-reused 0
Unpacking objects: 100% (4/4), done.
From https://github.com/container-images/memcached
 * [new ref]         refs/pull/2/head -> origin/pr/2
 * [new ref]         refs/pull/3/head -> origin/pr/3
-   Ouvrir le PR sur Github. En haut de la page PR est un numéro qui l'identifie -  123et le nom de l'auteur de la branchebranch-name. Copie sur les deux de ces.
-   ouvrez git bash et assurez-vous que votre répertoire de travail est propre en exécutant  git status
-  obtenir une copie du PR en tapant git fetch upstream pull/<id>/head:<branch>. Dans cet exemple, vous taperezgit fetch upstream pull/123/head:branch-name
-   maintenant que vous avez une copie de la succursale, commutateur à l'aide de  git checkout branch-name. Votre répertoire sera désormais une copie exacte du PR. Assurez-vous d'informer l'auteur de tout bogue ou de toute suggestion, car vous ne pouvez pas ajouter vos propres modifications à une demande pull directement.
-   lorsque vous avez terminé de vérifier leur travail, utilisez  git checkout masterpour retourner à votre version locale du projet Porcupine
voir toutes les instructions ici - https://github.com/TeamPorcupine/ProjectPorcupine/wiki/How-to-Test-a-Pull-Request#testing-someone-elses-pull-request
si vous suivez le workflow "GitHub fork", où vous créez une fork et ajoutez la prise en charge en amont à distance:
14:47 $ git remote -v
origin  git@github.com:<yourname>/<repo_name>.git (fetch)
origin  git@github.com:<yourname>/<repo_name>.git (push)
upstream        git@github.com:<repo_owrer>/<repo_name>.git (fetch)
upstream        git@github.com:<repo_owner>/<repo_name>.git (push)
pour tirer dans votre branche actuelle votre commande ressemblerait à:
git pull upstream pull/<pull_request_number>/head
pour tirer dans une nouvelle branche le code ressemblerait à:
git fetch upstream pull/<pull_request_number>/head:newbranch