Pull Requests非常适合用于理解围绕一个或一组对回购所做的更改的更大的思考。读取拉取请求是一种快速“了解”项目的好方法,因为您得到的不是对源的小原子更改,而是更大的逻辑更改组。类似于将代码中的行组织成相关的“节”,以使其更容易阅读。

我发现自己正在查看一个文件或一个提交,我想知道是否有一种方法可以将提交回溯到最初创建它的Pull Request。Pull Request最终会被合并,但合并提交是不必要的。


当前回答

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

控件的名称,如果有必要,将origin更改为指向 拉请求将被发送到的GitHub存储库。第一个 对于任何给定的远程,命令只需要运行一次,而第二次则需要 通常在获得其他更新时完成。

这将导致git与实际一起获得有关拉请求的信息 分支。它们会显示为远程跟踪分支,如origin/pull/123。 一旦完成了这一步,你就可以使用——all和——contains来描述git了 选项显示具有引用提交的第一个分支。

然而,如果您正在寻找的提交实际上是一个 从拉请求提交的修改版本,例如,如果发生了更改 是基于其他工作还是做合并的人决定做一些 的变化。

其他回答

你也可以使用gh cli来实现,这里有一个例子:

gh pr list --search "30aedc5aaab4708b2144c648a9c7ace9aff4cd31" --state merged --json url --jq '.[0].url'

欲了解更多信息,请参见- https://cli.github.com/manual/gh_pr_list

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

控件的名称,如果有必要,将origin更改为指向 拉请求将被发送到的GitHub存储库。第一个 对于任何给定的远程,命令只需要运行一次,而第二次则需要 通常在获得其他更新时完成。

这将导致git与实际一起获得有关拉请求的信息 分支。它们会显示为远程跟踪分支,如origin/pull/123。 一旦完成了这一步,你就可以使用——all和——contains来描述git了 选项显示具有引用提交的第一个分支。

然而,如果您正在寻找的提交实际上是一个 从拉请求提交的修改版本,例如,如果发生了更改 是基于其他工作还是做合并的人决定做一些 的变化。

将提交散列放入GitHub上的Pull Request filters字段。

我也遇到了同样的问题,并编写了pr_for_sha bash helper,文档如下:

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

像pr_for_sha <COMMIT>那样调用它,它将在浏览器中打开相应的github拉请求页面。

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

例如:

你可以看到,对于文件hakimel/reveal.js/plugin/markdown/markdown.js,我的贡献现在带有对它所产生的PR #734的引用。

这来自于从提交中链接合并的pull请求:

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

在拉请求中,您可以看到关于为什么引入提交的讨论,并更清楚地了解更改的原因。 和往常一样,如果您知道提交SHA,您可以跳过提交页面并直接搜索拉请求。