Les Pull Requests sont parfaits pour comprendre la réflexion globale autour d'un changement ou d'un ensemble de modifications apportées à un repo. La lecture des pull requests est un excellent moyen de "grok" rapidement un projet car, au lieu de petits changements atomiques à la source, vous obtenez de plus grands regroupements de changements logiques. Cela revient à organiser les lignes de votre code en «strophes» connexes pour le rendre plus facile à lire.
Je me retrouve 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 vers la Pull Request qui l'a créé à l'origine. Cette Pull Request aurait finalement été fusionnée, mais pas nécessaire avec un merge-commit.
git
github
pull-request
DragonFax
la source
la source
Réponses:
Vous pouvez simplement aller sur github et entrer le SHA dans la barre de recherche, assurez-vous de sélectionner le lien "Problèmes" sur la gauche.MISE À JOUR 13 juillet 2017
Via l'interface utilisateur de Github, il existe désormais un moyen très simple de le faire. Si vous regardez un commit dans la liste des commits dans une branche de l'interface utilisateur, cliquez sur le lien vers le commit lui-même. S'il existe un PR pour ce commit et qu'il n'a pas été ajouté directement à la branche, un lien vers le PR listant le numéro du PR et la branche dans laquelle il est entré sera directement sous le message de commit en haut de la page.
Si vous avez le SHA de validation et rien d'autre et que vous ne voulez pas fouiller pour cela, 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 le SHA est 52797a7a3b087231e4e391e11ea861569205aaf4 et que le dépôt est https://github.com/glimmerjs/glimmer-vm , puis accédez à https://github.com/glimmerjs/glimmer-vm/commit/52797a7a3a3be08209e439531la source
e4077951
, est-ce que cela fonctionne toujours pour vous?master
)?Si nécessaire, modifiez
origin
le nom de la télécommande 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 exécutée lors de l'obtention d'autres mises à jour.Cela amènera git à obtenir des informations sur les requêtes d'extraction avec les branches réelles. Ils apparaissent comme des branches de suivi à distance comme
origin/pull/123
. Une fois que cela est fait, vous pouvez utilisergit describe
avec les options--all
et--contains
pour afficher la première branche qui a le commit référencé.Cependant, cela ne fonctionnera pas si le commit que vous recherchez est en fait une version modifiée du commit à partir de la demande d'extraction, par exemple si les modifications ont été rebasées sur un autre travail ou si la personne effectuant la fusion a décidé d'apporter des modifications.
la source
pull/*/head
validations sans les blobs? Comment «nettoyer» après cela (reconfigurer les origines)?upstream
était en effet une erreur. J'avais copié cela à partir d'un référentiel qui avait cette configuration où la télécommande était nomméeupstream
et j'avais manqué cette occurrence en la changeant pour utiliser le plus courantorigin
comme nom de la télécommande. J'ai édité la réponse pour résoudre ce problème.refs/remotes/origin/pr/*
place derefs/remotes/origin/pull/*
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 au PR # 734 dont elle est issue.Cela vient de la liaison des demandes d'extraction fusionnées à partir de commits :
la source
API
niveau?Placez le hachage de validation dans le champ Filtres de demande d'extraction sur GitHub.
la source
J'ai eu ce même problème et j'ai écrit l'aide de bash pr_for_sha, documentée ici:
http://joey.aghion.com/find-the-github-pull-request-for-a-commit/
Appelez-le comme
pr_for_sha <COMMIT>
et il ouvrira la page de demande d'extraction github correspondante dans un navigateur.la source
git log
commande.git log --merges --ancestry-path --oneline 66100ab0..master
-fatal: ambiguous argument '66100ab0..master': unknown revision or path not in the working tree.
-git version 2.25.0