web-dev-qa-db-fra.com

Trouver une demande de tir sur Github où un commit a été créé à l'origine

Les demandes de tirage sont très utiles pour comprendre la pensée plus large concernant un changement ou un ensemble de changements apportés à un repo. La lecture des demandes d'extraction est un excellent moyen de "salir" rapidement un projet car, au lieu de petites modifications atomiques de la source, vous obtenez des groupes plus importants de modifications logiques. Analogue à l'organisation des lignes de votre code en "strophes" associées pour faciliter la lecture.

Je me trouve en train de regarder un fichier ou un commit, et je me demande s'il existe un moyen de revenir en arrière sur le commit de la demande d'extraction qui l'a créé à l'origine. Cette demande d'extraction aurait éventuellement été fusionnée, mais pas nécessaire avec un engagement de fusion.

151
DragonFax

Vous pouvez simplement aller sur github et entrer le SHA dans la barre de recherche, assurez-vous de sélectionner le lien "Problèmes" à gauche.

ACTUALISÉ le 13 juillet 2017

Via l'interface utilisateur de Github, il existe maintenant un moyen très simple de le faire. Si vous consultez une validation dans la liste des validations d'une branche de l'interface utilisateur, cliquez sur le lien correspondant à la validation. S'il existe un PR pour cette validation et que celui-ci n'a pas été ajouté directement à la branche, un lien vers le PR indiquant le numéro du PR et la branche dans laquelle il est entré sera directement sous le message de validation en haut de la page. enter image description here


Example of finding a PR by clicking on a link to the commit

Si vous avez le commit SHA et rien d'autre et que vous ne voulez pas aller le chercher, ajoutez simplement /commit/[commit SHA] à l'URL du dépôt, et vous verrez la page de validation, avec le lien PR s'il existe. Par exemple, si SHA est 52797a7a3b087231e4e391e11ea861569205aaf4 et que le référentiel est https://github.com/glimmerjs/glimmer-vm , puis passez à https : //github.com/glimmerjs/glimmer-vm/commit/52797a7a3b087231e4e391e11ea861569205aaf4

193
RustyToms
git config --add remote.Origin.fetch +refs/pull/*/head:refs/remotes/Origin/pull/*
git fetch Origin
git describe --all  --contains <COMMIT>

Si nécessaire, remplacez Origin par le nom de la personne distante qui pointe vers le référentiel github auquel la demande d'extraction aurait été envoyée. La première commande ne doit être exécutée qu'une seule fois pour une télécommande donnée, et la seconde sera généralement effectuée lors de l'obtention d'autres mises à jour.

Cela fera que git obtiendra des informations sur les demandes d'extraction ainsi que sur les branches réelles. Ils apparaîtront comme des branches de télé-suivi comme Origin/pull/123. Une fois que cela est fait, vous pouvez utiliser git describe avec le --all et --contains options pour montrer la première branche qui a la validation référencée.

Toutefois, cela ne fonctionnera pas si le commit que vous recherchez est en fait une version modifiée de la requête d'extraction, par exemple si les modifications ont été redéfinies sur un autre travail ou si la personne effectuant la fusion a décidé d'apporter des modifications.

50
qqx

Depuis le 13 octobre 2014, cela devrait être simple:

Par exemple:

Vous pouvez voir pour le fichier hakimel/reveal.js/plugin/markdown/markdown.js , ma contribution vient maintenant avec une référence à PR # 734 son origine.

PR from contrib

Cela vient de Liaison de demandes d'extraction fusionnées à partir de commits:

Nous avons été y compris les branches et les balises contenant sur les pages de validation pour vous donner plus de contexte autour des modifications. Maintenant, les commits dans la branche par défaut d'un référentiel vous montreront également la demande d'extraction qui les a introduits.

commit with PR reference in it!

Dans la demande d'extraction, vous pouvez voir la discussion sur les raisons pour lesquelles la validation a été introduite et obtenir une image plus claire de la raison du changement.

Comme toujours, si vous connaissez le SHA de validation, vous pouvez ignorer la page de validation et rechercher directement la demande d'extraction .

21
VonC

Placez le hachage de validation dans le champ Filtres de demande d'extraction de GitHub.

enter image description here

5
Dan Rosenstark

J'ai eu ce même problème et a écrit le pr_for_sha bash helper, documenté ici:

http://joey.aghion.com/find-the-github-pull-request-for-a-commit/

Appelez ça comme pr_for_sha <COMMIT> et il ouvrira la page de demande de tir Github correspondante dans un navigateur.

3
Joey