跳至主要内容

筛选项目

使用筛选器选择哪些项目显示在项目的视图中。

您可以使用项目元数据(例如分配人和应用于问题的标签)以及项目中的字段的筛选器来自定义哪些项目显示在您的视图中。您可以组合筛选器并将它们保存为视图。有关更多信息,请参阅“管理您的视图”。

要筛选视图,请单击并开始键入您要筛选的字段和值。键入时,将会显示可能的值。您还可以通过按 Command+K(Mac)或 Ctrl+K(Windows/Linux)打开项目命令面板,然后键入“按筛选”以从可用筛选器中进行选择。

Screenshot of "Mona's project". A field labeled "Filter by keyword or by field" is highlighted with an orange outline.

在看板布局中,您可以单击项目数据以筛选具有该值的所有项目。例如,单击分配人以仅显示该分配人的项目。要删除筛选器,请再次单击项目数据。

使用多个筛选条件相当于逻辑 AND 筛选。例如,label:bug status:"In progress" 将返回带有 bug 标签且状态为“进行中”的项目。您还可以为同一字段提供多个值,以用作逻辑 OR 筛选。例如,label:bug,support 将返回带有 bugsupport 标签的项目。项目目前不支持跨多个字段的逻辑 OR 筛选。

您在使用项目洞察创建图表时,可以使用相同的筛选条件,以便筛选用于创建图表的数据。有关更多信息,请参阅“关于项目洞察”。

当您筛选视图并添加项目时,筛选后的元数据将应用于新项目。例如,如果您按 status:"In progress" 筛选,然后添加项目,则新项目的状态将设置为“进行中”。

您可以使用筛选条件创建用于非常特定用途的视图。例如,您可以使用 assignee:@me status:todo last-updated:5days 创建一个视图,其中显示分配给当前用户、状态为“待办”且在过去五天内未更新的所有工作。您可以通过使用否定筛选条件创建分类视图,例如 no:label no:assignee repo:octocat/game,这将显示位于 octocat/game 存储库中、没有标签且没有分配人的项目。

筛选字段

限定符示例
assignee:用户名assignee:octocat 将显示分配给 @octocat 的项目。
label:标签label:bug 将显示应用了“bug”标签的项目。
field:status:done 将显示“状态”字段设置为“已完成”的项目。
reviewers:用户名reviewers:octocat 将显示 @octocat 已审查过的项目。
milestone:"里程碑"milestone:"QA release" 将显示分配给“QA 发布”里程碑的项目。

组合筛选条件

您可以为多个字段创建筛选条件。您的视图将显示与所有筛选条件匹配的项目。

限定符示例
assignee:用户名 field:assignee:octocat priority:1 将显示分配给 @octocat 且优先级为 1 的项目。

您还可以筛选同一字段中的多个值。如果您用逗号分隔这些值,则您的视图将显示与任何提供的匹配的值匹配的项目。

限定符示例
assignee:用户名,用户名assignee:octocat,stevecat 将显示分配给 @octocat 或 @stevecat 的项目。

要筛选同一字段中的多个值,但显示与所有提供的匹配的值匹配的项目,您可以为每个值重复限定符。

限定符示例
assignee:用户名 assignee:用户名assignee:octocat assignee:stevecat 将显示同时分配给 @octocat 和 @stevecat 的项目。

您还可以组合一些匹配项目和所有匹配项目的筛选条件。

限定符示例
field:, assignee:用户 assignee:用户label:bug,onboarding assignee:octocat assignee:stevecat 将显示具有 bug 或 onboarding 标签,但同时分配给 @octocat 和 @stevecat 的项目。

否定筛选条件

您可以通过在筛选条件前添加连字符来反转任何筛选条件,包括组合筛选条件。

限定符示例
-assignee:用户名-assignee:octocat 将不会显示分配给 @octocat 的任何项目。
-field:-status:done 将不会显示状态为“已完成”的任何项目。
-field:,-priority:1,2 将不会显示优先级为 1 或 2 的任何项目。

筛选缺少值的项目

您可以使用 no: 筛选缺少值的项目

限定符示例
no:assigneeno:assignee 将显示任何未分配的项目。
no:reviewersno:reviewers 将显示没有审查人的拉取请求。
no:字段no:priority 将显示优先级字段为空的项目。

您也可以在前面添加连字符以否定此行为,并且仅返回具有值的项目。

限定符示例
-no:assignee-no:assignee 将仅显示已分配的项目。
-no:字段-no:priority 将仅显示优先级字段中具有值的项目。

按项目位置筛选

使用 repo 限定符筛选特定存储库中的项目。

限定符示例
repo:所有者/仓库repo:octocat/game 将显示“octocat/game”存储库中的项目。

筛选项目状态或项目类型

您可以使用 is 限定符筛选特定类型的项目或处于特定状态的项目。

限定符示例
is:状态is:open 将显示打开的问题和拉取请求。
is:closed 将显示已关闭的问题和拉取请求。
is:merged 将显示任何已合并的拉取请求。
is:类型is:issue 将仅显示问题。
is:pr 将仅显示拉取请求。
is:draft 将显示草稿问题和草稿拉取请求。
is:issue is:open 将显示打开的问题。

按关闭原因筛选

您可以按已关闭项目的关闭原因进行筛选。

限定符示例
reason:关闭原因reason:completed 将显示因已完成而关闭的项目。
reason:"not planned" 将显示关闭原因为“未计划”的已关闭项目。
reason:reopened 将显示在之前关闭后重新打开的项目。

筛选项目上次更新的时间

您可以使用 {数字}days 语法筛选项目上次更新的时间。

限定符示例
last-updated:数字dayslast-updated:1day 将显示上次更新时间为一天或更长时间之前的项目。
last-updated:7days 将显示上次更新时间为七天或更长时间之前的项目。
-last-updated:10days 将显示在过去十天内已更新的项目。

GitHub 在以下情况下将问题或拉取请求标记为已更新

  • 创建
  • 重新打开
  • 编辑
  • 评论
  • 添加标签
  • 更新受让人
  • 更新里程碑
  • 转移到另一个存储库

筛选数字、日期和迭代字段

您可以使用 >>=<<= 比较数字、日期和迭代字段。日期应使用 YYYY-MM-DD 格式提供。

限定符示例
field:>priority:>1 将显示优先级大于 1 的项目。
field:>=date:>=2022-06-01 将显示日期为“2022-06-01”或之后的项目。
field:<iteration:<"Iteration 5" 将显示迭代时间早于“Iteration 5”的项目。
field:<=points:<=10 将显示点数为 10 或更少的项目。

您还可以使用 .. 筛选包含的范围。在处理范围时,可以将 * 作为通配符运算符提供。

限定符示例
field:..priority:1..3 将显示优先级为 1、2 或 3 的项目。
date:2022-01-01..2022-12-31 将显示 2022 年的项目。
points:*..10 将显示点数值最多为 10 的项目。
iteration:"Iteration 1..Iteration 4" 将显示“Iteration 1”、“Iteration 2”、“Iteration 3”和“Iteration 4”中的项目。

使用关键字筛选受让人和审查人

您可以在筛选条件中使用 @me 关键字来表示您自己。

限定符示例
field:@meassignee:@me 将显示分配给登录用户的项目。
-reviewers:@me 将显示登录用户尚未审查过的项目。

使用关键字筛选迭代和日期字段

您可以使用 @previous@current@next 关键字筛选相对于当前迭代的迭代。您还可以使用 @today 筛选当前日期。

限定符示例
field:@关键字iteration:@current 将显示分配给当前迭代的项目。
iteration:@next 将显示分配给下一迭代的项目。
field:@todaydate:@today 将显示日期设置为当前日期的项目。

您还可以将 >>=<<=+-.. 范围与关键字一起使用。

限定符示例
field:@关键字..@关键字+niteration:@current..@current+3 将显示分配给当前迭代和接下来三个迭代的项目。
date:@today..@today+7 将显示日期设置为今天或未来七天的项目。
field:<@关键字iteration:<@current 将显示分配给当前迭代之前的任何迭代的项目。
field:>=@关键字date:>=@today 将显示日期设置为今天或之后的项目。

按文本字段筛选

您可以按特定文本字段进行筛选,或在所有文本字段和标题中使用通用文本筛选。使用包含空格或特殊字符的文本进行筛选时,请将文本括在 "' 引号中。

限定符示例
field:"文本"title:"Bug fix" 将显示标题完全匹配“Bug fix”的项目。
field:文本note:complete 将显示注释文本字段完全匹配“complete”的项目。
文本API 将显示标题或任何其他文本字段中包含“API”的项目。
field:文本 文本label:bug rendering 将显示带有“bug”标签且标题或任何其他文本字段中包含“rendering”的项目。

您还可以使用 * 作为通配符。

限定符示例
字段:*TEXT*标签:*bug* 将显示包含“bug”一词的标签的项目。
字段:TEXT*标题:API* 将显示标题以“API”开头的项目。
字段:*TEXT标签:*support 将显示标签以“support”结尾的项目。

按问题类型筛选

如果您的组织使用问题类型,您可以筛选特定类型。

注意

问题类型、子问题和高级问题搜索目前处于组织的可选加入公开预览版中。要了解更多信息并将您的组织添加到候补名单,请参阅“GitHub 博客”。

限定符示例
类型:"ISSUE TYPE"类型:"bug" 将显示类型为“bug”的问题。

按父问题筛选

您可以通过其父问题筛选子问题。

注意

问题类型、子问题和高级问题搜索目前处于组织的可选加入公开预览版中。要了解更多信息并将您的组织添加到候补名单,请参阅“GitHub 博客”。

限定符示例
父问题:OWNER/REPO#ISSUE NUMBER父问题:octocat/game#4 将显示以 octocat/game 中的 #4 问题作为父问题的问题。