可以跨所有 GitHub 全局搜索议题和拉取请求,也可以在特定组织内搜索议题和拉取请求。 有关详细信息,请参阅“关于在GitHub上的搜索”。
提示
- 本文包含 GitHub.com 上的示例搜索,但可以在 GitHub 平台上使用相同的搜索筛选器。
- 可以在仓库的议题页面和议题仪表板上使用布尔查询和嵌套查询构建高级筛选器。 请参阅“筛选和搜索议题以及拉取请求”。
- 有关可添加到任何搜索限定符以进一步提升搜索结果的搜索语法列表,请参阅 了解搜索语法。
- 在多字词的搜索词语周围使用引号。 例如,如果要搜索具有标签“In progress”的问题,可搜索
label:"in progress"。 搜索不区分大小写。 - 使用减号(连字符)符号来排除与限定符匹配的结果。 例如,若要忽略“octocat”用户创建的问题,可以在搜索中使用
-author:octocat。 请注意,这种做法对缺少的元数据限定符无效。 - 您可以用键盘快捷键将光标焦点放在议题或拉取请求列表上方的搜索栏上。 有关详细信息,请参阅“键盘快捷方式”。
仅搜索议题或拉取请求
默认情况下,GitHub 搜索将返回议题和拉取请求。 但是,可以使用 type 或 is 限定符将搜索结果限制为仅问题或拉取请求。
| 限定符 | 示例 |
|---|---|
type:pr |
**cat type:pr** 匹配包含“cat”一词的拉取请求。
| type:issue | github commenter:defunkt type:issue 匹配包含“github”一词且包含 @defunkt 的评论的问题。
| is:pr | event is:pr 匹配包含“event”一词的拉取请求。
| is:issue | is:issue label:bug is:closed 匹配包含“bug”标签的已关闭问题。
按标题、正文或评论搜索
通过 in 限定符,可以将搜索限制为标题、正文、评论或这些项的任意组合。 如果省去此限定符,则会搜索标题、正文和评论。
| 限定符 | 示例 |
|---|---|
in:title | warning in:title 匹配标题中包含“warning”的问题。 |
in:body | error in:title,body 匹配标题或正文中包含“error”的问题。 |
in:comments | shipit in:comments 匹配在评论中提及“shipit”的问题。 |
在用户或组织的仓库内搜索
要在特定用户或组织拥有的所有仓库中搜索问题和拉取请求,可使用 user 或 org 限定符。 要在特定存储库中搜索问题和拉取请求,可使用 repo 限定符。
如果你有权访问超过 10,000 个存储库中的拉取请求,则需要将搜索限制在特定组织、个人帐户或存储库中才能查看结果。
| 限定符 | 示例 |
|---|---|
user:USERNAME | user:defunkt ubuntu 匹配 @defunkt 拥有的存储库中包含“ubuntu”一词的问题。 |
org:ORGNAME |
[
**org:github**](https://github.com/search?q=org%3Agithub&type=Issues&utf8=%E2%9C%93)匹配GitHub组织拥有的存储库中的问题。
| repo:USERNAME/REPOSITORY | repo:mozilla/shumway created:<2012-03-01 匹配 2012 年 3 月之前创建的 @mozilla 的 shumway 项目的问题。
按开放或关闭状态搜索
可以使用 state 或 is 限定符来筛选问题和拉取请求,基于它们是否处于打开或关闭状态。
| 限定符 | 示例 |
|---|---|
state:open | libraries state:open mentions:vmg 匹配提及 @vmg 且包含“libraries”一词的打开的问题。 |
state:closed | design state:closed in:body 匹配正文中包含“design”一词的已关闭问题。 |
is:open | performance is:open is:issue 匹配包含“performance”一词的打开的问题。 |
is:closed |
[
**android is:closed**](https://github.com/search?utf8=%E2%9C%93&q=android+is%3Aclosed&type=) 匹配含有“android”一词的已关闭问题和拉取请求。
在合并队列中查找拉取请求
你还可以使用 is 限定符查找排队等待合并的拉取请求。
| 限定符 | 示例 |
|---|---|
is:queued | is:queued 匹配当前排队等待合并的拉取请求。 |
按问题关闭的原因进行搜索
可使用 reason 限定符根据问题关闭时给出的原因筛选问题。
| 限定符 | 示例 |
|---|---|
reason:completed | libraries is:closed reason:completed 与关闭状态显示为“已完成”且包含“libraries”一词的问题匹配。 |
reason:"not planned" | libraries is:closed reason:"not planned" 与关闭状态显示“未计划”且包含“libraries”一词的问题匹配。 |
按仓库可见性过滤
可使用 is 限定符,按包含问题和拉取请求的存储库的可见性进行筛选。 有关详细信息,请参阅“关于仓库”。
| 限定符 | 示例 |
|---|---|
is:public |
[is:public****](https://github.com/search?q=is%3Apublic&type=Issues) 会匹配公共存储库中的问题和拉取请求。 |
| |
| is:private | is:private cupcake 匹配你可以访问的专用存储库中包含“cupcake”一词的问题和拉取请求。
按作者搜索
`author` 限定符查找由特定用户或集成帐户创建的问题和拉取请求。
| 限定符 | 示例 |
|---|---|
author:USERNAME | cool author:gjtorikian 匹配 @gjtorikian 创建的包含“cool”一词的问题和拉取请求。 |
`in:body`
<code>
author:
<em>
USERNAME
</em>
</code>
| [ **bootstrap in:body author:mdo**](https://github.com/search?q=bootstrap+in%3Abody+author%3Amdo&type=Issues) 匹配 @mdo 编写的且在正文中包含“bootstrap”一词的问题。
| author:app/USERNAME | author:app/robot 匹配名为“robot”的集成帐户创建的问题。
| -author:app/USERNAME | -author:app/robot 匹配不是由名为“robot”的集成帐户的帐户创建的问题。 限定符前面的减号或短划线字符 (-) 表示搜索查询中限定符的逻辑 NOT。
按受理人搜索
`assignee` 限定符查找分配给特定用户的问题和拉取请求。 可使用通配符 `*` 搜索包含_任何_被分派人的问题和拉取请求,但仅在单个存储库内。 还可以搜索[没有被分派人的问题和拉取请求](#search-by-missing-metadata)。
| 限定符 | 示例 |
|---|---|
assignee:USERNAME | assignee:vmg repo:libgit2/libgit2 匹配分配给 @vmg 的 libgit2 项目 libgit2 中的问题和拉取请求。 |
assignee:* | is:open is:issue assignee:* 匹配分配给任意用户的单个存储库中的待解决问题。 |
按提及搜索
`mentions` 限定符查找提及特定用户的问题。 有关详细信息,请参阅“[AUTOTITLE](/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#mentioning-people-and-teams)”。
| 限定符 | 示例 |
|---|---|
mentions:USERNAME | ** resque mentions:defunkt ** 匹配提及 @defunkt 且包含“resque”一词的问题。 |
按团队提及搜索
对于你所属的组织和团队,可以使用 team 限定符查找 @mention 该组织内特定团队的问题或拉取请求。 将这些示例名称替换为您的组织和团队的名称以执行搜索。
| 限定符 | 示例 |
|---|---|
team:ORGNAME/TEAMNAME | ** team:jekyll/owners ** 匹配提及 @jekyll/owners 团队的问题。 |
<code>
team:
<em>
ORGNAME/TEAMNAME
</em>
</code>
`is:open is:pr`
| **team:myorg/ops is:open is:pr** 匹配提及 `@myorg/ops` 团队的打开的拉取请求。
按评论者搜索
`commenter` 限定符查找包含特定用户评论的问题。
| 限定符 | 示例 |
|---|---|
commenter:USERNAME |
[
**github commenter:defunkt org:github**](https://github.com/search?utf8=%E2%9C%93&q=github+commenter%3Adefunkt+org%3Agithub&type=Issues)匹配包含“github”一词且有@defunkt评论的GitHub所拥有的存储库中的问题。
按议题或拉取请求中涉及的用户搜索
可使用 involves 限定符查找以某种方式涉及特定用户的问题。 involves 限定符是单一用户 author、assignee、mentions 和 commenter 限定符之间的逻辑 OR。 换句话说,此限定符查找由特定用户创建、分配给该用户、提及该用户或由该用户评论的议题和拉取请求。
| 限定符 | 示例 |
|---|---|
involves:USERNAME | ** involves:defunkt involves:jlord** 匹配涉及 @defunkt 或 @jlord 的问题。 |
`in:body`
<code>
involves:
<em>
USERNAME
</em>
</code>
| [ **NOT bootstrap in:body involves:mdo**](https://github.com/search?q=NOT+bootstrap+in%3Abody+involves%3Amdo&type=Issues) 匹配涉及 @mdo 且正文中不包含“bootstrap”一词的问题。
搜索我的问题和拉取请求
可按照包含 @me 的所需限定符搜索已创建或已交互的问题和拉取请求。 任何使用用户名的限定符都允许将搜索限制为所创建的问题和拉取请求、分配、提及或请求为审阅者。
| 限定符 | 示例 |
|---|---|
author:@me |
**
[
author:@me
](https://github.com/search?q=author%3A%40me)
** 匹配您已创建的问题和拉取请求。
| is:pr commenter:@me |
**
is:pr commenter:@me** 匹配您已评论的拉取请求。
搜索链接的议题和拉取请求
您可以将结果缩小到仅包括通过关闭引用链接到拉取请求的议题,或者链接到拉取请求可能关闭的议题的拉取请求。
| 限定符 | 示例 |
|---|---|
linked:pr | repo:desktop/desktop is:open linked:pr 匹配 desktop/desktop 存储库中通过关闭引用链接到拉取请求的打开的问题。 |
linked:issue | repo:desktop/desktop is:closed linked:issue 匹配 desktop/desktop 存储库中链接到拉取请求可能已关闭的问题的已关闭拉取请求。 |
-linked:pr | repo:desktop/desktop is:open -linked:pr 匹配 desktop/desktop 存储库中未通过关闭引用链接到拉取请求的打开的问题。 |
-linked:issue | repo:desktop/desktop is:open -linked:issue 匹配 desktop/desktop 存储库中未链接到拉取请求可能关闭的问题的打开的拉取请求。 |
按标签搜索
可使用 label 限定符按标签缩小结果范围。 由于议题可有多个标签,因此您可为每个议题列出单独的限定符。
| 限定符 | 示例 |
|---|---|
label:LABEL | label:"help wanted" language:ruby 匹配标签为“help wanted”且位于 Ruby 存储库中的问题。 |
`in:body`
<code>
-label:
<em>
LABEL
</em>
</code>
<code>
label:
<em>
LABEL
</em>
</code>
| [ **broken in:body -label:bug label:priority**](https://github.com/search?q=broken+in%3Abody+-label%3Abug+label%3Apriority&type=Issues) 匹配正文中包含“broken”一词且没有“bug”标签但_有_“priority”标签的问题。
|
label:
LABEL
label:
LABEL
|
label:bug label:resolved 匹配标签为“bug”和“已解决”的问题。
| label:LABEL,LABEL | label:bug,resolved 匹配标签为“bug”或“已解决”的问题。
按里程碑搜索
`milestone` 限定符用于查找在存储库的[里程碑](/issues/using-labels-and-milestones-to-track-work/about-milestones)中包含的问题或拉取请求。
| 限定符 | 示例 |
|---|---|
milestone:MILESTONE | milestone:"overhaul" 匹配位于名为“overhaul”的里程碑中的问题。 |
milestone:MILESTONE | milestone:"bug fix" 匹配位于名为“bug fix”的里程碑中的问题。 |
按项目搜索
可使用 project 限定符查找与特定项目关联的问题。 必须按项目编号搜索项目。 项目编号位于项目 URL 的末尾。
| 限定符 | 示例 |
|---|---|
project:PROJECT_NUMBER |
**project:github/57**匹配由GitHub拥有并与组织的项目57相关联的问题。
| |
按提交状态搜索
您可以基于提交的状态过滤拉取请求。 这在使用状态 API 或 CI 服务时特别有用。
| 限定符 | 示例 |
|---|---|
status:pending | language:go status:pending 匹配在状态为待定的 Go 存储库中打开的拉取请求。 |
status:success | is:open status:success finally in:body 匹配正文中包含“finally”一词且具有成功状态的打开的拉取请求。 |
status:failure | created:2015-05-01..2015-05-30 status:failure 匹配在 2015 年 5 月打开且具有失败状态的拉取请求。 |
按提交 SHA 搜索
如果您知道提交的特定 SHA 哈希,您可以使用它来搜索包含该 SHA 的拉取请求。 SHA 语法必须至少 7 个字符。
| 限定符 | 示例 |
|---|---|
SHA | e1109ab 匹配包含开头为 e1109ab 的提交 SHA 的拉取请求。 |
<code>
<em>
SHA
</em>
</code>
`is:merged`
| [ **0eff326d6213c is:merged**](https://github.com/search?q=0eff326d+is%3Amerged&type=Issues) 匹配包含开头为 `0eff326d6213c` 的提交 SHA 的合并拉取请求。
按分支名称搜索
您可以基于拉取请求来自的分支("head" 分支)或其合并到的分支("base" 分支)来过滤拉取请求。
| 限定符 | 示例 |
|---|---|
head:HEAD_BRANCH | head:change is:closed is:unmerged 匹配从名称以“change”一词开头的已关闭分支打开的拉取请求。 |
base:BASE_BRANCH | base:gh-pages 匹配合并到 gh-pages 分支中的拉取请求。 |
按语言搜索
使用 language 限定符可以搜索以特定语言编写的存储库内的问题和拉取请求。
| 限定符 | 示例 |
|---|---|
language:LANGUAGE |
**language:ruby state:open** 匹配 Ruby 存储库中的开放事项。
按评论数量搜索
可使用 comments 限定符以及大于、小于和范围限定符按评论数量搜索。
| 限定符 | 示例 |
|---|---|
comments:n | state:closed comments:>100 匹配评论超过 100 条的已关闭问题。 |
comments:n..n |
[
**comments:500..1000**](https://github.com/search?q=comments%3A500..1000&type=Issues) 匹配评论条数在 500 至 1000 之间的问题。
按交互数量搜索
可使用 interactions 限定符以及大于、小于和范围限定符按交互数量筛选问题和拉取请求。 交互数量是对议题或拉取请求的反应和评论数量。
| 限定符 | 示例 |
|---|---|
interactions:n | interactions:>2000 匹配交互数超过 2000 的拉取请求或问题。 |
interactions:n..n | interactions:500..1000 匹配交互数为 500-1000 的拉取请求或问题。 |
按反应数量搜索
可使用 reactions 限定符以及大于、小于和范围限定符按反应数量筛选问题和拉取请求。
| 限定符 | 示例 |
|---|---|
reactions:n | reactions:>1000 匹配反应数超过 1000 的问题。 |
reactions:n..n |
**reactions:500..1000** 对应于反应次数为 500-1000 的问题。
搜索草稿拉取请求
您可以过滤草稿拉取请求。 有关详细信息,请参阅“关于拉取请求”。
| 限定符 | 示例 |
|---|---|
draft:true |
**draft:true** 用于匹配草稿拉取请求。
| draft:false | draft:false 与准备审阅的拉取请求匹配。
按拉取请求审查状态和审查者搜索
可以根据拉取请求的审查状态(无、必需、已批准或请求更改)、审查人以及被请求的审查人进行筛选。
| 限定符 | 示例 |
|---|---|
review:none |
**type:pr review:none** 匹配尚未审查的拉取请求。
| review:required | type:pr review:required 匹配需要审查后才能合并的拉取请求。
| review:approved | type:pr review:approved 匹配审查者已批准的拉取请求。
| review:changes_requested | type:pr review:changes_requested 匹配审查者要求更改的拉取请求。
| reviewed-by:USERNAME | type:pr reviewed-by:gjtorikian 匹配特定人员审查的拉取请求。
| review-requested:USERNAME | type:pr review-requested:benbalter 匹配请求特定人员审查的拉取请求。 被请求的审查者在完成对拉取请求的审查后,将不再出现在搜索结果中。 如果请求的人员属于请求审查的团队,则该团队的审查请求也将在搜索结果中显示。
| user-review-requested:@me | type:pr user-review-requested:@me 匹配你已直接要求审查的拉取请求。
| team-review-requested:TEAMNAME | type:pr team-review-requested:github/docs 匹配拥有来自团队 github/docs 的审查请求的拉取请求。 被请求的审查者在审查完拉取请求后,将不再在搜索结果中显示。
按议题或拉取请求创建或上次更新的时间搜索
您可以基于创建时间或上次更新时间过滤议题。 对于问题创建,可以使用 created 限定符;要了解问题的最后更新时间,需要使用 updated 限定符。
两者均采用日期作为参数。 日期格式必须遵循 ISO8601 标准,即 YYYY-MM-DD(年-月-日)。 也可以在日期后添加可选的时间信息 THH:MM:SS+00:00,以按小时、分钟和秒进行搜索。 即 T,随后是 HH:MM:SS(时-分-秒)和 UTC 时差 (+00:00)。
搜索日期时,可以使用大于、小于和范围限定符来进一步筛选结果。 有关详细信息,请参阅“了解搜索语法”。
| 限定符 | 示例 |
|---|---|
created:YYYY-MM-DD | language:c# created:<2011-01-01 state:open 匹配以 C# 编写的存储库中 2011 年以前创建的打开的问题。 |
updated:YYYY-MM-DD | weird 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-DD | language:swift closed:>2014-06-11 匹配 2014 年 6 月 11 日后关闭的以 Swift 编写的问题和拉取请求。 |
in:body closed:<YYYY-MM-DD | data 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)。
搜索日期时,可以使用大于、小于和范围限定符来进一步筛选结果。 有关详细信息,请参阅“了解搜索语法”。
| 限定符 | 示例 |
|---|
<code>
language:
<em>
LANGUAGE
</em>
</code>
<code>
merged:<
<em>
YYYY-MM-DD
</em>
</code>
|
[
**
`language:javascript merged:<2011-01-01`
**
](https://github.com/search?q=language%3Ajavascript+merged%3A%3C2011-01-01+&type=Issues) 匹配 JavaScript 存储库中 2011 年以前合并的拉取请求。
|
in:title
language:
LANGUAGE
merged:>
YYYY-MM-DD
| fast in:title language:ruby merged:>=2014-05-01 匹配 2014 年 5 月之后合并、标题中含有“fast”一词、以 Ruby 编写的拉取请求。
基于拉取请求是否已合并搜索
可使用 is 限定符根据拉取请求已合并还是未合并对其进行筛选。
| 限定符 | 示例 |
|---|---|
is:merged | bug is:pr is:merged 匹配包含“bug”一词的合并的拉取请求。 |
is:unmerged | error is:unmerged 匹配拉取请求,其中“error”一词是打开或已关闭,但未合并。 |
基于代码库是否已存档进行搜索
`archived` 限定符根据问题或拉取请求是否位于已存档存储库中筛选结果。
| 限定符 | 示例 |
|---|---|
archived:true | archived:true GNOME 匹配你具有访问权限的已存档存储库中包含“GNOME”一词的问题和拉取请求。 |
archived:false | archived:false GNOME 匹配你具有访问权限的未存档存储库中包含“GNOME”一词的问题和拉取请求。 |
根据对话是否已锁定进行搜索
可使用 is 限定符搜索具有已锁定对话的问题或拉取请求。 有关详细信息,请参阅“锁定对话”。
| 限定符 | 示例 |
|---|---|
is:locked | code of conduct is:locked is:issue archived:false 匹配未存档存储库中具有已锁定对话且包含“code of conduct”字样的问题或拉取请求。 |
is:unlocked | code of conduct is:unlocked is:issue archived:false 匹配未存档存储库中具有未锁定对话且包含“code of conduct”字样的问题或拉取请求。 |
基于缺失的元数据进行搜索
可使用 no 限定符缩小搜索缺少特定元数据的问题和拉取请求的范围。 这些限定符不能与减号(连字符)符号组合在一起,以排除缺少元数据的项目。 该元数据包括:
- 标签
- 里程碑
- 受理人
- 项目
| 限定符 | 示例 |
|---|---|
no:label | priority no:label 匹配没有任何标签且包含“priority”一词的问题和拉取请求。 |
no:milestone | sprint no:milestone type:issue 匹配未与包含“sprint”一词的里程碑关联的问题。 |
no:assignee | important no:assignee language:java type:issue 匹配未与代理人关联、包含“important”一词且位于 Java 存储库中的问题。 |
no:project | build no:project 匹配未与 项目 关联且包含“build”一词的议题。 |
其他阅读材料
-
[AUTOTITLE](/search-github/getting-started-with-searching-on-github/sorting-search-results)