在Github上找到最初创建提交的Pull请求

Dra*_*Fax 158 git github pull-request

Pull Requests非常适合理解围绕对repo进行更改或更改的更大思考.读取拉取请求是快速"理解"项目的一种好方法,因为您可以获得更大的逻辑更改分组,而不是对源进行小的原子更改.类似于将代码中的行组织成相关的"节",以便于阅读.

我发现自己正在查看文件或提交,我想知道是否有办法将提交回溯到最初创建它的Pull Request.Pull Request最终会被合并,但不需要合并提交.

Rus*_*oms 205

您可以转到github并在搜索栏中输入SHA,确保选择左侧的"问题"链接.

2017年7月13日更新

通过Github UI,现在有一种非常简单的方法可以做到这一点.如果您正在查看UI中分支的提交列表中的提交,请单击提交本身的链接.如果该提交有PR并且没有直接添加到分支,则PR列出PR编号及其分支的PR的链接将直接位于页面顶部的提交消息下. 在此输入图像描述


通过单击提交链接查找PR的示例

如果您有提交SHA而没有别的东西,并且不想继续挖掘它,只需添加/commit/[commit SHA]到repo url,您将看到提交页面,如果它存在PR链接.例如,如果SHA是52797a7a3b087231e4e391e11ea861569205aaf4,并且repo是https://github.com/glimmerjs/glimmer-vm,那么请转到https://github.com/glimmerjs/glimmer-vm/commit/52797a7a3b087231e4e391e11ea861569205aaf4


qqx*_*qqx 50

git config --add remote.origin.fetch +refs/pull/*/head:refs/remotes/origin/pull/*
git fetch origin
git describe --all  --contains <COMMIT>
Run Code Online (Sandbox Code Playgroud)

如有必要,请更改origin为指向将向其发送拉取请求的github存储库的远程名称.第一个命令只需要为任何给定的远程运行一次,第二个命令通常在获取其他更新时完成.

这将导致git获取有关pull请求以及实际分支的信息.它们将显示为远程跟踪分支origin/pull/123.一旦做到这一点,您可以使用git describe--all--contains 选项,以显示它具有引用提交第一家分店.

但是,如果您正在查找的提交实际上是来自pull请求的提交的修改版本,例如,如果更改被重新定位到其他工作或者进行合并的人决定进行一些更改,则这将不起作用.

  • 我想指出的是,如果您在完成后在 PR 上选择“删除分支”,则此操作将不起作用。我这样做是为了清理。真的很不幸。 (4认同)

Von*_*onC 21

自2014年10月13日起,这应该是直截了当的:

例如:

你可以看到这个文件hakimel/reveal.js/plugin/markdown/markdown.js,现在的贡献是它引用的PR#734的引用.

来自contrib的PR

这来自链接来自提交的合并拉取请求:

我们在提交页面上包含了包含分支和标记,以便为您提供更多有关更改的上下文.现在,存储库的默认分支中的提交也将显示引入它们的pull请求.

提交PR参考!

在pull请求中,您可以看到关于引入提交的原因的讨论,并更清楚地了解更改的原因.

与往常一样,如果您知道提交SHA,则可以跳过提交页面并直接搜索提取请求.

  • 我们可以在'API`级别获得这个吗? (2认同)

小智 14

您还可以使用 gh cli 来执行此操作,下面是一个示例:

gh pr list --search "30aedc5aaab4708b2144c648a9c7ace9aff4cd31" --state merged --json url --jq '.[0].url'
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅 - https://cli.github.com/manual/gh_pr_list

  • 如果提交尚未合并或已关闭,您可能需要“--state all”。 (2认同)

Dan*_*ark 6

将提交哈希放入GitHub上的Pull Request过滤器字段.

在此输入图像描述