Je voudrais vérifier une demande de pull précédemment créée (créée via l'interface Web GitHub). J'ai cherché et trouvé différents endroits où un refs / pull ou refs / pull / pr
Mais quand j'ajoute fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
au fichier de configuration git et fais un git fetch
Qu'est-ce que je fais mal? Est-ce que GitHub doit créer automatiquement les trucs pull / xyz, ou dois-je configurer quelque chose?
git
github
pull-request
git-checkout
GarfieldKlon
la source
la source
Réponses:
Pour récupérer un PR distant dans votre référentiel local,
où
ID
est l'ID de demande d'extraction etBRANCHNAME
est le nom de la nouvelle branche que vous souhaitez créer. Une fois que vous avez créé la branche, alors simplementConsultez la documentation officielle de GitHub pour en savoir plus.
la source
git fetch origin pull/1/head:githubusername
ce à quoi je m'attendaisBRANCHNAME
est ce que vous voulez nommer la branche. Je suppose que vous avez essayé d'utiliser un nom qui existait déjà (par exemplemaster
) et qui ne fonctionnait pas, alors vous avez essayé votre nom d'utilisateur, qui a fonctionné, car il n'y avait pas de branche avec ce nom. Je comprends peut-être mal ce que vous disiez.origin
pointe vers votre fork etupstream
- vers le référentiel d'origine (en suivant help.github.com/articles/configuring-a-remote-for-a-fork , par exemple). Assurez-vous de passerorigin
àupstream
dans la commande mentionnée, si vous souhaitez récupérer la demande de tirage du dépôt d'origine.Cela va chercher sans que vous ayez à nommer une branche:
Comment obtenir une demande d'extraction spécifique sur ma machine?
la source
Cet essentiel décrit ce qui s'est passé lorsque vous effectuez une récupération git:
Vous avez divers scripts répertoriés dans les problèmes 259 pour automatiser cette tâche.
Le projet git-extras propose la commande
git-pr
(implémentée dans PR 262 )git-pr
(1) - Extrait une demande de pull localementla source
Je préfère récupérer et extraire sans créer de branche locale et être dans l' état HEAD détaché . Cela me permet de vérifier rapidement la demande de pull 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 demande d'extraction etupstream
où est la demande d'extraction d'origine a été créée (il peut s'agirorigin
, par exemple).J'espère que ça aide.
la source
En référence à la réponse de Steven Penny, il est préférable de créer une branche de test et de tester le PR. Voici donc ce que vous feriez.
git checkout -b test
git pull origin pull/939/head:test
Maintenant, vous pouvez tester en toute sécurité les modifications sur cette branche de test locale (dans ce cas, nommé test ) et une fois que vous êtes satisfait, vous pouvez le fusionner comme d'habitude à partir de GitHub.
la source
test
branche et ALORS tirerais le PR - de cette façon, je n'ai pas besoin de restaurer les branches localement une fois terminé; Je viens de disposer de l'arbre de travail. En fait, je ne suis JAMAIScheckout -b
plus - je crée toujours un arbre de travail puis une branche. Le disque est bon marché. Bien sûr, j'ai un script qui fait ça; Je ne tape pas toutes les commandes nécessaires individuellement.Si vous utilisez Github.com, allez dans "Pull request", cliquez sur la pull request appropriée, puis sur le lien "command line instructions" link:
la source
Vous pouvez utiliser la
git config
commande pour écrire une nouvelle règle.git/config
pour récupérer les demandes d'extraction à partir du référentiel:Et puis juste:
la source
Le problème avec certaines des options ci-dessus, c'est que si quelqu'un pousse plus de validations sur le PR après avoir ouvert le PR, il ne vous donnera pas la version la plus à jour. Pour moi, ce qui a le mieux fonctionné est - allez sur le PR, et appuyez sur «Commits», faites défiler vers le bas pour voir le hachage de validation le plus récent , puis utilisez simplement git checkout, c'est-à-dire
git checkout <commit number>
dans l'exemple ci-dessus
git checkout 0ba1a50
la source
git fetch origin pull/ID/head:BRANCHNAME
approche mentionnée dans stackoverflow.com/a/30584951/659732 . Merci pour la solution!J'utilise hub, un outil de github: https://github.com/github/hub
Avec le hub, vérifier une demande de pull localement est assez simple:
la source
Pour Bitbucket, vous devez remplacer le mot
pull
parpull-requests
.Tout d'abord, vous pouvez confirmer le style d'URL de demande d'extraction par
git ls-remote origin
commande.Comme vous pouvez le voir, c'est
refs/pull-requests/1503/from
au lieu derefs/pull/1503/from
Ensuite, vous pouvez utiliser les commandes de l'une des réponses.
la source
J'ai accidentellement fini par écrire presque la même chose que celle fournie 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, placez simplement ce
git-pr
fichier quelque part dans votre$PATH
et vous pourrez simplement écrire:la source
Si vous suivez le workflow "github fork", où vous créez un fork et ajoutez le dépôt distant en amont:
pour tirer dans votre branche actuelle votre commande ressemblerait à:
pour entrer dans une nouvelle branche, le code ressemblerait à ceci:
la source
Github a récemment publié un utilitaire cli appelé github-cli . Après l'avoir installé, vous pouvez extraire la branche d'une demande de pull localement en utilisant son id
par exemple:
gh pr checkout 2267
Notez que ce package est toujours en version bêta
la source
Obtenez la branche PR distante dans la branche locale:
git fetch origin ‘remote_branch’:‘local_branch_name’
Définissez l'amont de la branche locale sur la branche distante.
git branch --set-upstream-to=origin/PR_Branch_Name local_branch
Lorsque vous souhaitez repousser les modifications locales vers la branche PR
git push origin HEAD:remote_PR_Branch_name
la source
Supposons que votre origine et vos informations en amont soient comme ci-dessous
et votre nom de branche est comme
puis
doit faire le travail
la source
Si leurs validations sont sur la branche principale de leur dépôt fourchu, vous pouvez simplement faire ce qui suit.
la source