Skip to main content

筛选和搜索议题以及拉取请求

要在 GitHub 上查找有关仓库的详细信息,您可以过滤、排序和搜索与仓库相关的议题和拉取请求。

Tool navigation

Tip

还可以使用 GitHub CLI 过滤议题或拉取请求。 有关详细信息,请参阅 GitHub CLI 文档中的“gh issue list”或“gh pr list”。

过滤议题和拉取请求

议题和拉取请求带有一组默认过滤器,您可以应用这些过滤器来组织列表。

您可以过滤议题和拉取请求以查找:

  • 所有打开的议题和拉取请求
  • 您已创建的议题和拉取请求
  • 分配给您的议题和拉取请求
  • 你被 @mentioned 的情况下的问题和拉取请求

Tip

还可以使用 GitHub CLI 过滤议题或拉取请求。 有关详细信息,请参阅 GitHub CLI 文档中的“gh issue list”或“gh pr list”。

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “问题”或 “拉取请求”。

    存储库的主页的屏幕截图。 在水平导航栏中,标记为“问题”和“拉取请求”的两个选项卡均以深橙色标出。

  3. 在列表上方选择“筛选器”下拉菜单,然后单击感兴趣的筛选器类型。

    存储库问题列表的屏幕截图。 列表上方有一个下拉菜单,标有“筛选器”并用深橙色标出。

为问题生成高级筛选器

Note

对于组织,问题类型、子问题和高级问题搜索目前处于可选择加入的 公共预览版 中。 若要了解详细信息并将组织添加到等待列表,请参阅“GitHub 博客”。

可以在存储库的问题页上使用布尔查询和嵌套查询生成高级筛选器。 键入筛选器时,GitHub 将显示可用的限定符、建议值,并在筛选器出现问题时发出警告。

使用布尔运算符

可以使用 AND 筛选器和 OR 运算符来优化筛选器。

当需要两个语句为 true 的结果时使用 AND。 在下面的示例筛选器中,结果由分配给 @octocat 用户的具有“Bug 修复”标签的问题组成。

label:"Bug fix" AND assignee:octocat

若要返回任一语句为 true 的结果,请使用 OR。 在下面的示例中,结果将包含分配给 @octocat 或 @hubot 的问题。

assignee:octocat OR assignee:hubot

如果选择不使用 ANDOR 运算符,那么除非使用 orgrepouser 字段按任何空格都被视为 OR 运算符的所有权进行筛选,否则 GitHub 会将语句之间的空格视为 AND 运算符。

对更复杂的筛选器使用括号

还可以使用括号来嵌套筛选器和组限定符。 在下面的示例中,结果将包含分配给 @octocat(问题类型为“bug”)或分配给 @hubot(问题类型为“Enchancement”)的问题。

(type:"Bug" AND assignee:octocat) OR (type:"Enhancement" AND assignee:hubot)

可以使用括号来嵌套最多五个级别的括号。 目前不能在括号中包含 repoorguser 限定符。

按受理人过滤议题和拉取请求

问题或拉取请求分配给某人后,可以根据处理这些项目的人来查找项。

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “问题”或 “拉取请求”。

    存储库的主页的屏幕截图。 在水平导航栏中,标记为“问题”和“拉取请求”的两个选项卡均以深橙色标出。

  3. 在问题列表或拉取请求上方,选择“被分派人”下拉菜单。

    问题列表的屏幕截图。 在列表上方的标题中,标有“被分派人”的下拉菜单以深橙色突出显示。

  4. Assignee(受理人)下拉菜单将列出对仓库有写入权限的每个人。 单击你想查看其分配项的人员的姓名,或单击“未分配给任何人”以查看未分配的问题。

Tip

要清除筛选器选择,请单击“清除当前搜索查询、筛选和排序”。

按标签过滤议题和拉取请求

标签应用于问题或拉取请求后,可以根据项的标签查找项。

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “问题”或 “拉取请求”。

    存储库的主页的屏幕截图。 在水平导航栏中,标记为“问题”和“拉取请求”的两个选项卡均以深橙色标出。

  3. 在问题列表或拉取请求的上方,单击“标签”。

    存储库问题列表的屏幕截图。 在列表上方,一个标有标签图标和“标签”的按钮以深橙色突出显示。

  4. 在标签列表中单击标签。

Tip

要清除筛选器选择,请单击“清除当前搜索查询、筛选和排序”。

按问题类型筛选

Note

对于组织,问题类型、子问题和高级问题搜索目前处于可选择加入的 公共预览版 中。 若要了解详细信息并将组织添加到等待列表,请参阅“GitHub 博客”。

如果组织使用问题类型,则可以筛选特定类型的问题。 还可以直接在筛选器中键入 type: 限定符。

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “问题”。

    存储库的主页的屏幕截图。 在水平导航栏中,标记有“问题”的选项卡以深橙色标出。

  3. 在问题列表上方,选择“类型”下拉菜单。

    问题列表的屏幕截图。 在列表上方的标题中,标有“类型”的下拉菜单以深橙色突出显示,而且“问题类型”菜单已打开。

  4. 在类型列表中,单击问题类型。

按审查状态过滤拉取请求

您可以使用过滤器按审查状态列出拉取请求,查找您已审查的拉取请求或其他人要求您审查的拉取请求。

您可以过滤仓库的拉取请求列表以查找:

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “拉取请求”。

    存储库的主页的屏幕截图。 在水平导航栏中,标记为“拉取请求”的选项卡以深橙色标出。

  3. 在右上角,选择“查看”下拉菜单。

    拉取请求列表上方的筛选器菜单的屏幕截图。 “查看”下拉菜单以深橙色框出。

  4. 选择一个过滤器以查找具有该过滤器状态的所有拉取请求。

使用搜索过滤议题和拉取请求

您可以使用筛选器来搜索符合特定条件的问题和拉取请求。

搜索议题和拉取请求

议题和拉取请求搜索栏可以定义您自己的自定义过滤器并按各种标准进行排序。 可在每个存储库的“问题”和“拉取请求”选项卡以及问题和拉取请求仪表板上找到搜索栏 。

存储库问题列表的屏幕截图。 列表上方的搜索字段(包含查询“is:issue is:open”)以深橙色标出。

Tip

您可以用键盘快捷键将光标焦点放在议题或拉取请求列表上方的搜索栏上。 有关详细信息,请参阅“键盘快捷方式”。

Note

若要详细了解 GitHub CLI,请参阅“关于 GitHub CLI”。

您可以使用 GitHub CLI 来搜索议题或拉取请求。 将 gh issue listgh pr list 子命令与 --search 参数和搜索查询一起使用。

例如,可以按创建日期的顺序列出所有没有分派人且具有标签 help wantedbug 的问题。

gh issue list --search 'no:assignee label:"help wanted",bug sort:created-asc'

你也可以列出所有提及 octo-org/octo-team 团队的拉取请求。

gh pr list --search "team:octo-org/octo-team"

关于搜索词

使用议题和拉取请求搜索词,您可以:

  • 按作者筛选问题和拉取请求:state:open type:issue author:octocat
  • 筛选涉及但不一定 @mention 某些人的问题和拉取请求:state:open type:issue involves:octocat
  • 按被分派人筛选问题和拉取请求:state:open type:issue assignee:octocat
  • 按标签筛选问题和拉取请求:state:open type:issue label:"bug"
  • 在字词前使用 - 筛选掉搜索词:state:open type:issue -author:octocat

Tip

可以使用逻辑 OR 或使用逻辑 AND 按标签筛选问题和拉取请求。

  • 要使用逻辑 OR 筛选问题,请使用逗号语法:label:"bug","wip"
  • 要使用逻辑 AND 筛选问题,请使用单独的标签筛选器:label:"bug" label:"wip"

对于议题,您还可以使用搜索来:

  • 通过关闭引用筛选链接到拉取请求的问题:linked:pr
  • 按关闭原因筛选问题:is:closed reason:completedis:closed reason:"not planned"

对于拉取请求,您还可以使用搜索来:

  • 筛选草稿拉取请求:is:draft
  • 筛选尚未审查的拉取请求:state:open type:pr review:none
  • 筛选在合并之前需要审查的拉取请求:state:open type:pr review:required
  • 筛选审阅者批准的拉取请求:state:open type:pr review:approved
  • 筛选审阅者要求更改的拉取请求:state:open type:pr review:changes_requested
  • 审阅者筛选拉取请求:state:open type:pr reviewed-by:octocat
  • 请求审查的特定用户筛选拉取请求:state:open type:pr review-requested:octocat
  • 筛选有人直接要求你审查的拉取请求:state:open type:pr user-review-requested:@me
  • 按请求审查的团队筛选拉取请求:state:open type:pr team-review-requested:github/docs
  • 筛选链接到拉取请求可能关闭的问题的拉取请求:linked:issue
  • 合并状态筛选拉取请求:is:mergedis:unmerged

排序议题和拉取请求

可以排序过滤器以在特定时间段内提供更好的信息。

您可以按以下各项排序任何过滤的视图:

  • 最新创建的议题或拉取请求
  • 最早创建的议题或拉取请求
  • 评论最多的议题或拉取请求
  • 评论最少的议题或拉取请求
  • 最新更新的议题或拉取请求
  • 最早更新的议题或拉取请求
  • 反应最多的议题或拉取请求
  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库名称下,单击 “问题”或 “拉取请求”。

    存储库的主页的屏幕截图。 在水平导航栏中,标记为“问题”和“拉取请求”的两个选项卡均以深橙色标出。

  3. 在问题或拉取请求列表上方,选择“排序”下拉菜单,然后单击排序方法。

    存储库问题列表的屏幕截图。 列表上方有一个下拉菜单,标有“排序”并用深橙色标出。

要清除排序选择,请单击“排序” > “最新” 。

共享过滤器

当您过滤或排序议题和拉取请求时,浏览器的 URL 自动更新以匹配新视图。

您可以将议题生成的 URL 发送给任何用户,这些用户将能够看到与您所见相同的过滤视图。

例如,如果您过滤分配给 Hubot 的议题,然后对最早的开放议题进行排序,您的 URL 将更新为类似如下内容:

/issues?q=state:open+type:issue+assignee:hubot+sort:created-asc

其他阅读材料