跳至主要内容

筛选项目

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

你可以使用项目元数据(例如指派者和应用于问题的标签)以及项目中的字段,自定义哪些项目出现在视图中。你可以组合筛选器并将其保存为视图。有关更多信息,请参阅“管理视图”。

若要筛选视图,请单击 并开始输入你想要筛选的字段和值。在你输入时,将显示可能的值。你还可以通过按 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标签的项目。目前,Projects 不支持跨多个字段的逻辑 OR 过滤器。

对于你使用 Projects 的见解创建的图表,可以使用相同的过滤器,从而让你可以过滤用于创建图表的那些数据。更多信息,请参阅“关于 Projects 的见解”。

当你过滤一个视图,然后添加一个项目时,已过滤的元数据将应用于新项目。例如,如果你按status:"In progress"过滤,并且添加一个项目,新项目的 status 将设置为“进行中”。

你可以使用过滤器来生成具有非常具体用途的视图。例如,你可以使用assignee:@me status:todo last-updated:5days来创建当前用户分配的所有工作的视图,其状态为“待办”,且在过去五天内未更新。你可以使用否定过滤器来创建分类视图,例如no:label no:assignee repo:octocat/game,它将显示没有标签且没有受让人,且位于octocat/game存储库中的项目。

按字段过滤

限定词示例
assignee:USERNAMEassignee:octocat 将显示分配给 @octocat 的项目。
label:LABELlabel:bug 将显示应用了“bug”标签的项目。
field:VALUEstatus:done 将显示“status”字段设置为“done”的项目。
reviewers:USERNAMEreviewers:octocat 将显示由 @octocat 评审的项目。
milestone:"MILESTONE"milestone:"Beta release" 将显示分配给“Beta release”里程碑的项目。

组合过滤器

你可以为多个字段创建过滤器。你的视图将显示与所有过滤器匹配的项目。

限定词示例
assignee:USERNAME field:VALUEassignee:octocat priority:1 将显示分配给 @octocat 且优先级为1的项目。

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

限定词示例
assignee:USERNAME,USERNAMEassignee:octocat,stevecat 将显示分配给 @octocat 或 @stevecat 的项目。

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

限定词示例
assignee:USERNAME assignee:USERNAMEassignee:octocat assignee:stevecat 将显示同时分配给 @octocat 和 @stevecat 的项目。

您还可以组合匹配某些项目和匹配所有项目的筛选器。

限定词示例
field:VALUE,VALUE assignee:USER assignee:USERlabel:bug,onboarding assignee:octocat assignee:stevecat 将显示具有 bug 或 onboarding 标签且同时分配给 @octocat 和 @stevecat 的项目。

否定筛选器

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

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

过滤缺少值的项目

您可以使用 no: 过滤缺少值的项目

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

您还可以添加连字符前缀来否定此行为,并仅返回具有值的项目。

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

按项目位置过滤

使用 repo 限定符过滤特定存储库中的项目。

限定词示例
repo:OWNER/REPOrepo:octocat/game 将显示“octocat/game”存储库中的项目。

按项目状态或项目类型过滤

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

限定词示例
is:STATEis:open 将显示开放的问题和请求拉取。
is:closed 将显示关闭的问题和请求拉取。
is:merged 将显示所有合并的请求拉取。
is:TYPEis:issue 将仅显示问题。
is:pr 将仅显示请求拉取。
is:draft 将显示草稿问题和草稿请求拉取。
is:issue is:open 将显示开放的问题。

按关闭原因筛选

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

限定词示例
reason:CLOSE REASONreason:completed 将显示因完成而关闭的项目。
reason:"not planned" 将显示具有“未计划”原因的关闭项目。
reason:reopened 将显示在先前关闭后重新开放的项目。

按 tracked-by 字段筛选

您可以筛选由任务列表中另一个问题跟踪的问题。有关更多信息,请参阅“创建任务列表”。

限定词示例
tracked-by:"OWNER/REPO#ISSUE NUMBER"tracked-by:"octocat/game#11" 将显示由 octocat/game 存储库的问题 #11 中的任务列表跟踪的任何问题。

筛选项目上次更新的时间

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

限定词示例
last-updated:NUMBERdayslast-updated:1day 将显示一或多天前上次更新的项目。
last-updated:7days 将显示七或多天前上次更新的项目。
-last-updated:10days 将显示在过去十天内更新的项目。

当问题或请求拉取

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

时,GitHub 将其标记为已更新。

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

限定词示例
字段:>优先级:>1 将显示优先级大于 1 的项目。
字段:>=日期:>=2022-06-01 将显示日期为“2022-06-01”或更晚的项目。
字段:<迭代:<"迭代 5" 将显示迭代早于“迭代 5”的项目。
字段:<=点数:<=10 将显示点数为 10 或更少的项目。

您还可以使用 .. 过滤包含范围。使用范围时,* 可用作通配符运算符。

限定词示例
字段:..优先级:1..3 将显示优先级为 1、2 或 3 的项目。
日期:2022-01-01..2022-12-31 将显示 2022 年的项目。
点数:*..10 将显示点数值为最多 10(含)的项目。
迭代:"迭代 1..迭代 4" 将显示“迭代 1”、“迭代 2”、“迭代 3”和“迭代 4”中的项目。

使用关键字过滤指派人和审阅人

您可以在过滤器中使用 @me 关键字来表示自己。

限定词示例
字段:@me指派人:@me 将显示指派给已登录用户的项目。
-审阅人:@me 将显示尚未由已登录用户审阅的项目。

使用关键字过滤迭代和日期字段

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

限定词示例
字段:@keyword迭代:@current 将显示指派给当前迭代的项目。
迭代:@next 将显示指派给下一个迭代的项目。
字段:@today日期:@today 将显示日期设置为当前日期的项目。

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

限定词示例
字段:@keyword..@keyword+n迭代:@current..@current+3 将显示指派给当前迭代和接下来三个迭代的项目。
日期:@today..@today+7 将显示日期设置为今天或接下来七天的项目。
字段:<@keyword迭代:<@current 将显示指派给当前迭代之前任何迭代的项目。
字段:>=@keyword日期:>=@today 将显示日期设置为今天或更晚的项目。

按文本字段过滤

您可以按特定文本字段过滤,或对所有文本字段和标题使用通用文本过滤器。使用包含空格或特殊字符的文本进行过滤时,请用 "' 引号将文本括起来。

限定词示例
字段:"文本"标题:“API 弃用”将显示标题完全匹配“API 弃用”的项目。
字段:文本注释:已完成将显示注释文本字段完全匹配“已完成”的项目。
文本API 将显示标题或任何其他文本字段中包含“API”的项目。
字段:文本 文本标签:错误呈现将显示带有“错误”标签的项目,并且标题或任何其他文本字段中包含“呈现”。

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

限定词示例
字段:*文本*标签:*错误* 将显示标签中包含单词“错误”的项目。
字段:文本*标题:API* 将显示标题以“API”开头的项目。
字段:*文本标签:*支持 将显示标签以“支持”结尾的项目。