跳至主要内容

搜索问题和请求合并

你可以在 GitHub 上搜索问题和请求合并,并使用任意组合的搜索限定符缩小结果范围。

您可以在整个 GitHub 中全局搜索问题和拉取请求,也可以在特定组织内搜索问题和拉取请求。有关更多信息,请参阅“关于在 GitHub 上搜索”。

提示

  • 有关可添加到任何搜索限定符以进一步改善结果的搜索语法列表,请参阅“了解搜索语法”。

  • 对多字搜索词使用引号。例如,如果您想搜索标签为“进行中”的问题,则需要搜索 label:"in progress"。搜索不区分大小写。

  • 使用减号(连字符)符号排除与限定符匹配的结果。例如,要忽略由“octocat”用户创建的问题,您可以在搜索中使用 -author:octocat。请注意,这对于缺失元数据限定符不起作用。

  • 您可以使用键盘快捷键将光标聚焦到问题或拉取请求列表上方的搜索栏。有关更多信息,请参阅“键盘快捷键”。

仅搜索问题或拉取请求

默认情况下,GitHub 搜索将返回问题和拉取请求。但是,您可以使用 typeis 限定符将搜索结果限制为仅问题或拉取请求。

限定符示例
type:prcat type:pr匹配包含单词“cat”的拉取请求。
type:issuegithub commenter:defunkt type:issue匹配包含单词“github”且有 @defunkt 评论的问题。
is:prevent is:pr匹配包含单词“event”的拉取请求。
is:issueis:issue label:bug is:closed匹配标签为“bug”的已关闭问题。

按标题、正文或评论搜索

使用 in 限定符可以将搜索范围限制在标题、正文、评论或这些内容的任意组合。省略此限定符时,将搜索标题、正文和评论。

限定符示例
in:titlewarning in:title 匹配标题中包含“warning”的问题。
in:bodyerror in:title,body 匹配标题或正文中包含“error”的问题。
in:commentsshipit in:comments 匹配评论中提到“shipit”的问题。

在用户或组织的代码库中搜索

若要搜索特定用户或组织拥有的所有代码库中的问题和请求,可以使用 userorg 限定符。若要搜索特定代码库中的问题和请求,可以使用 repo 限定符。

如果可以访问超过 10,000 个代码库中的请求,则需要将搜索范围限制在特定的组织、个人帐户或代码库中才能查看结果。

限定符示例
user:USERNAMEuser:defunkt ubuntu 匹配 @defunkt 拥有的代码库中包含“ubuntu”一词的问题。
org:ORGNAMEorg:github 匹配 GitHub 组织拥有的代码库中的问题。
repo:USERNAME/REPOSITORYrepo:mozilla/shumway created:<2012-03-01 匹配在 2012 年 3 月之前创建的 @mozilla 的 shumway 项目中的问题。

按打开或关闭状态搜索

可以使用 stateis 限定符根据问题和请求是打开还是关闭来筛选。

限定符示例
state:openlibraries state:open mentions:vmg 匹配提及 @vmg 且包含“libraries”一词的打开问题。
state:closeddesign state:closed in:body 匹配正文中包含“design”一词的已关闭问题。
is:openperformance is:open is:issue 匹配包含“performance”一词的打开问题。
is:closedandroid is:closed 匹配包含“android”一词的已关闭问题和请求。

在合并队列中搜索请求

还可以使用 is 限定符查找已排队合并的请求。

限定符示例
is:queuedis:queued 匹配当前排队合并的 pull request。

按问题关闭原因搜索

你可以使用 reason 限定符,根据问题关闭时给出的原因来筛选问题。

限定符示例
reason:completedlibraries is:closed reason:completed 匹配包含单词“libraries”且因“已完成”而关闭的问题。
reason:"not planned"libraries is:closed reason:"not planned" 匹配包含单词“libraries”且因“未计划”而关闭的问题。

按代码库可见性筛选

你可以使用 is 限定符,按包含问题和 pull request 的代码库可见性进行筛选。更多信息,请参阅“关于代码库”。

限定符示例
is:publicis:public 匹配公共代码库中的问题和 pull request。
is:privateis:private cupcake 匹配包含单词“cupcake”且在你可访问的私有代码库中的问题和 pull request。

按作者搜索

author 限定符查找由某个用户或集成帐户创建的问题和 pull request。

限定符示例
author:USERNAMEcool author:gjtorikian 匹配包含单词“cool”且由 @gjtorikian 创建的问题和 pull request。
in:body author:USERNAMEbootstrap in:body author:mdo 匹配由 @mdo 编写且正文中包含单词“bootstrap”的问题。
author:app/USERNAMEauthor:app/robot 匹配由名为“robot”的集成帐户创建的问题。
-author:app/USERNAME-author:app/robot 匹配由除名为“robot”的集成帐户外的任何用户创建的问题。限定符前的减号或连字符 (-) 表示搜索查询中限定符的逻辑非。

按指派人搜索

assignee 限定符查找分配给特定用户的 issue 和 pull request。您可以使用通配符 * 搜索具有任何分配者的 issue 和 pull request,但仅限于单个存储库内。您还可以搜索没有分配者的 issue 和 pull request

限定符示例
assignee:USERNAMEassignee:vmg repo:libgit2/libgit2 匹配分配给 @vmg 的 libgit2 项目 libgit2 中的 issue 和 pull request。
assignee:*is:open is:issue assignee:* 匹配分配给任何用户的单个存储库内的开放 issue。

按提及搜索

mentions 限定符查找提及特定用户的 issue。有关详细信息,请参阅“基本书写和格式化语法”。

限定符示例
mentions:USERNAMEresque mentions:defunkt 匹配包含单词“resque”且提及 @defunkt 的 issue。

按团队提及搜索

对于您所属的组织和团队,您可以使用 team 限定符查找在该组织内 @提及特定团队的 issue 或 pull request。用您的组织和团队名称替换这些示例名称以执行搜索。

限定符示例
team:ORGNAME/TEAMNAMEteam:jekyll/owners 匹配提及 @jekyll/owners 团队的 issue。
team:ORGNAME/TEAMNAME is:open is:prteam:myorg/ops is:open is:pr 匹配提及 @myorg/ops 团队的开放 pull request。

按评论者搜索

commenter 限定符查找包含特定用户评论的 issue。

限定符示例
commenter:USERNAMEgithub commenter:defunkt org:github 匹配由 GitHub 拥有、包含单词“github”且有 @defunkt 评论的存储库中的问题。

按参与问题或请求拉取的用户搜索

你可以使用 involves 限定符查找以某种方式涉及某个用户的 issue。involves 限定符是对单个用户的 authorassigneementionscommenter 限定符的逻辑 OR。换句话说,此限定符查找由某个用户创建、分配给该用户、提及该用户或由该用户评论的问题和请求拉取。

限定符示例
involves:USERNAMEinvolves:defunkt involves:jlord 匹配 @defunkt 或 @jlord 参与的问题。
in:body involves:USERNAMENOT bootstrap in:body involves:mdo 匹配 @mdo 参与的问题,但不包含正文中的单词“bootstrap”。

搜索我的问题和请求拉取

你可以通过在所需限定符后跟 @me 来搜索你创建或与之交互的问题和请求拉取。任何与用户名一起使用的限定符都允许你将搜索限制为你创建、分配、提及或请求作为审阅者的 issue 和请求拉取。

限定符示例
author:@meauthor:@me 匹配你撰写的 issue 和请求拉取。
is:pr commenter:@meis:pr commenter:@me 匹配你已评论的请求拉取。

搜索链接的问题和请求拉取

你可以缩小结果范围,仅包括通过关闭引用链接到请求拉取的问题,或链接到请求拉取可能关闭的问题的请求拉取。

限定符示例
linked:prrepo:desktop/desktop is:open linked:pr 匹配 desktop/desktop 存储库中通过关闭引用链接到请求拉取的开放问题。
linked:issuerepo:desktop/desktop is:closed linked:issue 匹配 desktop/desktop 存储库中已关闭的请求拉取,这些请求拉取链接到请求拉取可能已关闭的问题。
-linked:prrepo:desktop/desktop is:open -linked:pr 匹配未通过关闭引用链接到拉取请求的 desktop/desktop 存储库中的开放式问题。
-linked:issuerepo:desktop/desktop is:open -linked:issue 匹配未链接到拉取请求可能关闭的问题的 desktop/desktop 存储库中的开放式拉取请求。

按标签搜索

你可以使用 label 限定符按标签缩小搜索结果范围。由于问题可以有多个标签,因此你可以为每个问题列出单独的限定符。

限定符示例
label:LABELlabel:"help wanted" language:ruby 匹配 Ruby 存储库中带有标签“help wanted”的问题。
in:body -label:LABEL label:LABELbroken in:body -label:bug label:priority 匹配正文中带有单词“broken”、不带有标签“bug”但带有标签“priority”的问题。
label:LABEL label:LABELlabel:bug label:resolved 匹配带有标签“bug”和“resolved”的问题。
label:LABEL,LABELlabel:bug,resolved 匹配带有标签“bug”或标签“resolved”的问题。

按里程碑搜索

milestone 限定符查找存储库中的 里程碑 的一部分的问题或拉取请求。

限定符示例
milestone:MILESTONEmilestone:"overhaul" 匹配名为“overhaul”的里程碑中的问题。
milestone:MILESTONEmilestone:"bug fix" 匹配名为“bug fix”的里程碑中的问题。

按项目搜索

你可以使用 project 限定符查找与特定项目关联的问题。你必须按项目编号搜索项目。你可以在项目 URL 的末尾找到项目编号。

限定符示例
project:PROJECT_NUMBERproject:github/57 匹配由 GitHub 所有且与该组织的项目 57 关联的问题。
project:REPOSITORY/PROJECT_NUMBERproject:github-linguist/linguist/1 匹配与 @github 的 linguist 存储库中的项目 1 关联的问题。

按提交状态搜索

你可以基于提交状态过滤拉取请求。如果你正在使用状态 API或 CI 服务,这会特别有用。

限定符示例
status:pendinglanguage:go status:pending匹配到状态为待定的 Go 仓库中打开的拉取请求。
status:successis:open status:success finally in:body匹配到正文中包含单词“finally”且状态为成功的打开的拉取请求。
status:failurecreated:2015-05-01..2015-05-30 status:failure匹配到 2015 年 5 月打开且状态为失败的拉取请求。

按提交 SHA 搜索

如果你知道提交的特定 SHA 哈希,你可以使用它来搜索包含该 SHA 的拉取请求。SHA 语法必须至少包含七个字符。

限定符示例
SHAe1109ab匹配到提交 SHA 以 e1109ab 开头的拉取请求。
SHA is:merged0eff326d6213c is:merged匹配到提交 SHA 以 0eff326d6213c 开头的已合并的拉取请求。

按分支名称搜索

你可以基于拉取请求的来源分支(“head”分支)或合并目标分支(“base”分支)过滤拉取请求。

限定符示例
head:HEAD_BRANCHhead:change is:closed is:unmerged匹配到从以单词“change”开头的分支名称打开且已关闭的拉取请求。
base:BASE_BRANCHbase:gh-pages匹配到正在合并到 gh-pages 分支的拉取请求。

按语言搜索

使用 language 限定符,你可以搜索使用特定语言编写的仓库中的问题和拉取请求。

限定符示例
language:LANGUAGElanguage:ruby state:open匹配到 Ruby 仓库中的打开的问题。

按评论数量搜索

您可以将comments限定符与大于、小于和范围限定符一起使用,按评论数进行搜索。

限定符示例
comments:nstate:closed comments:>100匹配评论数超过 100 的已关闭 issue。
comments:n..ncomments:500..1000匹配评论数在 500 到 1000 之间的 issue。

按交互数搜索

您可以使用interactions限定符和大于、小于和范围限定符,按交互数筛选 issue 和 pull request。交互数是指 issue 或 pull request 上的反应和评论数。

限定符示例
interactions:ninteractions:>2000匹配交互数超过 2000 的 pull request 或 issue。
interactions:n..ninteractions:500..1000匹配交互数在 500 到 1000 之间的 pull request 或 issue。

按反应数搜索

您可以使用reactions限定符和大于、小于和范围限定符,按反应数筛选 issue 和 pull request。

限定符示例
reactions:nreactions:>1000匹配反应数超过 1000 的 issue。
reactions:n..nreactions:500..1000匹配反应数在 500 到 1000 之间的 issue。

搜索草稿 pull request

您可以筛选草稿 pull request。有关详细信息,请参阅“关于 pull request”。

限定符示例
草稿:真草稿:真 匹配草稿拉取请求。
草稿:假草稿:假 匹配已准备好进行审核的拉取请求。

按拉取请求审核状态和审核人搜索

你可以根据拉取请求的审核状态必需已批准请求更改)、按审核人和按请求的审核人筛选拉取请求。

限定符示例
审核:无类型:pr 审核:无 匹配尚未审核的拉取请求。
审核:必需类型:pr 审核:必需 匹配在合并之前需要审核的拉取请求。
审核:已批准类型:pr 审核:已批准 匹配审核人已批准的拉取请求。
审核:请求更改类型:pr 审核:请求更改 匹配审核人已要求更改的拉取请求。
已审核人:用户名类型:pr 已审核人:gjtorikian 匹配由特定人员审核的拉取请求。
请求审核人:用户名类型:pr 请求审核人:benbalter 匹配请求特定人员审核的拉取请求。在审核拉取请求后,请求的审核人将不再列在搜索结果中。如果请求的人员属于请求审核的团队,则对该团队的审核请求也将显示在搜索结果中。
用户请求审核人:@我类型:pr 用户请求审核人:@我 匹配你直接被要求审核的拉取请求。
团队请求审核人:团队名称类型:pr 团队请求审核人:github/docs 匹配来自团队 github/docs 的审核请求的拉取请求。在审核拉取请求后,请求的审核人将不再列在搜索结果中。

按问题或拉取请求创建或上次更新的时间搜索

你可以根据创建或上次更新的时间筛选问题。对于问题创建,可以使用 created 限定符;要找出问题上次更新的时间,你需要使用 updated 限定符。

两者都将日期作为参数。日期格式必须遵循ISO8601 标准,即 YYYY-MM-DD(年-月-日)。你还可以添加可选的时间信息 THH:MM:SS+00:00 在日期之后,按小时、分钟和秒搜索。即 T,后跟 HH:MM:SS(小时-分钟-秒)和 UTC 偏移(+00:00)。

搜索日期时,可以使用大于、小于和范围限定符进一步筛选结果。有关更多信息,请参阅“了解搜索语法”。

限定符示例
创建:YYYY-MM-DDlanguage:c# created:<2011-01-01 state:open 匹配在 2011 年之前使用 C# 编写的存储库中创建的开放问题。
更新:YYYY-MM-DDweird in:body updated:>=2013-02-01 匹配在 2013 年 2 月之后更新且正文中包含单词“weird”的问题。

按问题或拉取请求关闭的时间进行搜索

你可以使用 closed 限定符,根据问题和拉取请求关闭的时间进行筛选。

此限定符采用日期作为其参数。日期格式必须遵循 ISO8601 标准,即 YYYY-MM-DD(年-月-日)。你还可以根据小时、分钟和秒进行搜索,在日期后添加可选的时间信息 THH:MM:SS+00:00。即 T,后跟 HH:MM:SS(小时-分钟-秒)和 UTC 偏移(+00:00)。

搜索日期时,可以使用大于、小于和范围限定符进一步筛选结果。有关更多信息,请参阅“了解搜索语法”。

限定符示例
closed:>YYYY-MM-DDlanguage:swift closed:>2014-06-11 匹配在 2014 年 6 月 11 日之后关闭的 Swift 中的问题和拉取请求。
in:body closed:<YYYY-MM-DDdata in:body closed:<2012-10-01 匹配在 2012 年 10 月之前关闭且正文中包含单词“data”的问题和拉取请求。

按拉取请求合并的时间进行搜索

你可以使用 merged 限定符,根据拉取请求合并的时间进行筛选。

此限定符采用日期作为其参数。日期格式必须遵循 ISO8601 标准,即 YYYY-MM-DD(年-月-日)。你还可以根据小时、分钟和秒进行搜索,在日期后添加可选的时间信息 THH:MM:SS+00:00。即 T,后跟 HH:MM:SS(小时-分钟-秒)和 UTC 偏移(+00:00)。

搜索日期时,可以使用大于、小于和范围限定符进一步筛选结果。有关更多信息,请参阅“了解搜索语法”。

限定符示例
language:LANGUAGE merged:<YYYY-MM-DDlanguage:javascript merged:<2011-01-01 匹配在 2011 年之前合并的 JavaScript 存储库中的拉取请求。
in:title language:LANGUAGE merged:>YYYY-MM-DDfast in:title language:ruby merged:>=2014-05-01 匹配在 2014 年 5 月之后合并且标题中包含单词“fast”的 Ruby 中的拉取请求。

按拉取请求是合并还是未合并进行搜索

你可以使用 is 限定符根据请求是已合并还是未合并来筛选请求。

限定符示例
is:mergedbug is:pr is:merged 匹配包含单词“bug”的已合并请求。
is:unmergederror is:unmerged 匹配包含单词“error”的请求,这些请求可能是打开的,也可能是未合并就关闭的。

根据存储库是否已归档进行搜索

archived 限定符根据问题或请求是否在已归档存储库中来筛选你的结果。

限定符示例
archived:truearchived:true GNOME 匹配包含单词“GNOME”且位于你具有访问权限的已归档存储库中的问题和请求。
archived:falsearchived:false GNOME 匹配包含单词“GNOME”且位于你具有访问权限的未归档存储库中的问题和请求。

根据对话是否已锁定进行搜索

你可以使用 is 限定符搜索具有锁定对话的问题或请求。有关更多信息,请参阅“锁定对话”。

限定符示例
is:lockedcode of conduct is:locked is:issue archived:false 匹配包含单词“code of conduct”且在未归档存储库中具有锁定对话的问题或请求。
is:unlockedcode of conduct is:unlocked is:issue archived:false 匹配包含单词“code of conduct”且在未归档存储库中具有解锁对话的问题或请求。

按缺失元数据搜索

你可以使用 no 限定符将搜索范围缩小到缺失特定元数据的请求和问题。这些限定符不能与减号(连字符)符号结合使用,以排除缺失元数据的项目。该元数据包括

  • 标签
  • 里程碑
  • 受让人
  • 项目
限定符示例
no:labelpriority no:label 匹配包含单词“priority”且没有任何标签的问题和请求。
no:milestonesprint no:milestone type:issue 匹配不包含“sprint”一词且不与里程碑关联的问题。
no:assigneeimportant no:assignee language:java type:issue 匹配不与受让人关联、包含“important”一词且位于 Java 存储库中的问题。
no:projectbuild no:project 匹配不与项目(经典)关联、包含“build”一词的问题。

延伸阅读