GitHub高级搜索语法
了解搜索语法
搜索 GitHub 时,您可以构建匹配特定数字和单词的查询。
查询大于或小于另一个值的值
您可以使用 >
、>=
、<
和 <=
搜索大于、大于等于、小于以及小于等于另一个值的值。
查询 | 示例 |
---|---|
>*n* |
cats stars:>1000 匹配含有 "cats" 字样、星标超过 1000 个的仓库。 |
>=*n* |
cats topics:>=5 匹配含有 "cats" 字样、有 5 个或更多主题的仓库。 |
<*n* |
cats size:<10000 匹配小于 10 KB 的文件中含有 "cats" 字样的代码。 |
<=*n* |
cats stars:<=50 匹配含有 "cats" 字样、星标不超过 50 个的仓库。 |
您还可以使用范围查询搜索大于等于或小于等于另一个值的值。
查询 | 示例 |
---|---|
*n*..* |
cats stars:10..* 等同于 stars:>=10 并匹配含有 "cats" 字样、有 10 个或更多星号的仓库。 |
*..*n* |
cats stars:*..10 等同于 stars:<=10 并匹配含有 "cats" 字样、有不超过 10 个星号的仓库。 |
查询范围之间的值
您可以使用范围语法 *n*..*n*
搜索范围内的值,其中第一个数字 n 是最低值,而第二个是最高值。
查询 | 示例 |
---|---|
*n*..*n* |
cats stars:10..50 匹配含有 "cats" 字样、有 10 到 50 个星号的仓库。 |
查询日期
您可以通过使用 >
、>=
、<
、<=
和范围查询搜索早于或晚于另一个日期,或者位于日期范围内的日期。 日期格式必须遵循 ISO8601标准,即 YYYY-MM-DD
(年-月-日)。
查询 | 示例 |
---|---|
>*YYYY*-*MM*-*DD* |
cats created:>2016-04-29 匹配含有 "cats" 字样、在 2016 年 4 月 29 日之后创建的议题。 |
>=*YYYY*-*MM*-*DD* |
cats created:>=2017-04-01 匹配含有 "cats" 字样、在 2017 年 4 月 1 日或之后创建的议题。 |
<*YYYY*-*MM*-*DD* |
cats pushed:<2012-07-05 匹配在 2012 年 7 月 5 日之前推送的仓库中含有 "cats" 字样的代码。 |
<=*YYYY*-*MM*-*DD* |
cats created:<=2012-07-04 匹配含有 "cats" 字样、在 2012 年 7 月 4 日或之前创建的议题。 |
*YYYY*-*MM*-*DD*..*YYYY*-*MM*-*DD* |
cats pushed:2016-04-30..2016-07-04 匹配含有 "cats" 字样、在 2016 年 4 月末到 7 月之间推送的仓库。 |
*YYYY*-*MM*-*DD*..* |
cats created:2012-04-30..* 匹配在 2012 年 4 月 30 日之后创建、含有 "cats" 字样的议题。 |
*..*YYYY*-*MM*-*DD* |
cats created:*..2012-07-04 匹配在 2012 年 7 月 4 日之前创建、含有 "cats" 字样的议题。 |
您也可以在日期后添加可选的时间信息 THH:MM:SS+00:00
,以便按小时、分钟和秒进行搜索。 这是 T
,随后是 HH:MM:SS
(时-分-秒)和 UTC 偏移 (+00:00
)。
查询 | 示例 |
---|---|
*YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*+*00*:*00* |
cats created:2017-01-01T01:00:00+07:00..2017-03-01T15:30:15+07:00 匹配在 2017 年 1 月 1 日凌晨 1 点(UTC 偏移为 07:00 )与 2017 年 3 月 1 日下午 3 点(UTC 偏移为 07:00 )之间创建的议题。 UTC 偏移量 07:00 ,2017 年 3 月 1 日下午 3 点。 UTC 偏移量 07:00 。 |
*YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z |
cats created:2016-03-21T14:11:00Z..2016-04-07T20:45:00Z 匹配在 2016 年 3 月 21 日下午 2:11 与 2016 年 4 月 7 日晚上 8:45 之间创建的议题。 |
排除特定结果
您可以使用 NOT
语法排除包含特定字词的结果。 NOT
运算符只能用于字符串关键词, 不适用于数字或日期。
查询 | 示例 |
---|---|
NOT |
hello NOT world 匹配含有 "hello" 字样但不含有 "world" 字样的仓库。 |
缩小搜索结果范围的另一种途径是排除特定的子集。 您可以为任何搜索限定符添加 -
前缀,以排除该限定符匹配的所有结果。
查询 | 示例 |
---|---|
-*QUALIFIER* |
mentions:defunkt -org:github 匹配提及 @defunkt 且不在 GitHub 组织仓库中的议题. |
对带有空格的查询使用引号
如果搜索含有空格的查询,您需要用引号将其括起来。 例如:
- cats NOT "hello world" 匹配含有 "cats" 字样但不含有 "hello world" 字样的仓库。
- build label:"bug fix" 匹配具有标签 "bug fix"、含有 "build" 字样的议题。
某些非字母数字符号(例如空格)会从引号内的代码搜索查询中删除,因此结果可能出乎意料。
使用用户名的查询
如果搜索查询包含需要用户名的限定符,例如 user
、actor
或 assignee
,您可以使用任何 GitHub 用户名指定特定人员,或使用 @me
指定当前用户。
查询 | 示例 |
---|---|
QUALIFIER:USERNAME |
author:nat 匹配 @nat 创作的提交。 |
QUALIFIER:@me |
is:issue assignee:@me 匹配已分配给结果查看者的议题 |
@me
只能与限定符一起使用,而不能用作搜索词,例如 @me main.workflow
。
搜索过滤的要素 | 搜索栏中的书写 |
---|---|
按照项目(仓库名称)搜索 | in:name XXX |
按照编程语言搜索 | language:xxx |
按照项目(仓库)描述搜索 | in:description xxx |
按照README文件描述搜索 | in:readme xxx |
按照star数限制搜索 | stars:>n |
按照fork数限制搜索 | forks:>n |
按照更新时间限制(时间晚于)搜索 | pushed:>YYYY-MM-DD |
按照某个人的某个项目限制搜索 | repo:owner/name |
搜索用户名下的所有项目(仓库)或某个项目(仓库)——用户名后加项目名称 | org:username |
搜索某个组织名下的项目(仓库) | org:orgname |
按照关注者数量搜索 | node followers:>=10000 匹配有 10,000 或更多关注者提及文字 "node" 的仓库 |
一般的,我们希望自己搜索到的项目是时常在更新在维护的,而更新的时间则可以反映出搜索项目的更新维护状态。pushed:可以帮助我们按照项目更新时间筛选出需要的仓库。
比如,我们希望搜到的仓库是在2020-06-30之后更新过的且stars数大于5000的用python编写的爬虫项目,我们可以输入:爬虫 in:readme stars:>5000 language:python pushed:>2020-06-30
Tips:
有关可以添加到任何搜索限定符以进一步改善结果的搜索语法列表,请参阅“了解搜索语法”。
对多个字词的搜索词使用引号。 例如,如果要搜索具有标签 "In progress" 的议题,可搜索 label:"in progress"
。 搜索不区分大小写
番外:附GitHub官方文档提供的搜索语法
查询大于或小于另一个值的值
您可以使用 >
、>=
、<
和 <=
搜索大于、大于等于、小于以及小于等于另一个值的值。
查询 | 示例 |
---|---|
>*n* |
cats stars:>1000 匹配含有 "cats" 字样、星标超过 1000 个的仓库。 |
>=*n* |
cats topics:>=5 匹配含有 "cats" 字样、有 5 个或更多主题的仓库。 |
<*n* |
cats size:<10000 匹配小于 10 KB 的文件中含有 "cats" 字样的代码。 |
<=*n* |
cats stars:<=50 匹配含有 "cats" 字样、星标不超过 50 个的仓库。 |
您还可以使用范围查询搜索大于等于或小于等于另一个值的值。
查询 | 示例 |
---|---|
*n*..* |
cats stars:10..* 等同于 stars:>=10 并匹配含有 "cats" 字样、有 10 个或更多星号的仓库。 |
*..*n* |
cats stars:*..10 等同于 stars:<=10 并匹配含有 "cats" 字样、有不超过 10 个星号的仓库。 |
查询范围之间的值
您可以使用范围语法 *n*..*n*
搜索范围内的值,其中第一个数字 n 是最低值,而第二个是最高值。
查询 | 示例 |
---|---|
*n*..*n* |
cats stars:10..50 匹配含有 "cats" 字样、有 10 到 50 个星号的仓库。 |
查询日期
您可以通过使用 >
、>=
、<
、<=
和范围查询搜索早于或晚于另一个日期,或者位于日期范围内的日期。 日期格式必须遵循 ISO8601标准,即 YYYY-MM-DD
(年-月-日)。
查询 | 示例 |
---|---|
>*YYYY*-*MM*-*DD* |
cats created:>2016-04-29 匹配含有 "cats" 字样、在 2016 年 4 月 29 日之后创建的议题。 |
>=*YYYY*-*MM*-*DD* |
cats created:>=2017-04-01 匹配含有 "cats" 字样、在 2017 年 4 月 1 日或之后创建的议题。 |
<*YYYY*-*MM*-*DD* |
cats pushed:<2012-07-05 匹配在 2012 年 7 月 5 日之前推送的仓库中含有 "cats" 字样的代码。 |
<=*YYYY*-*MM*-*DD* |
cats created:<=2012-07-04 匹配含有 "cats" 字样、在 2012 年 7 月 4 日或之前创建的议题。 |
*YYYY*-*MM*-*DD*..*YYYY*-*MM*-*DD* |
cats pushed:2016-04-30..2016-07-04 匹配含有 "cats" 字样、在 2016 年 4 月末到 7 月之间推送的仓库。 |
*YYYY*-*MM*-*DD*..* |
cats created:2012-04-30..* 匹配在 2012 年 4 月 30 日之后创建、含有 "cats" 字样的议题。 |
*..*YYYY*-*MM*-*DD* |
cats created:*..2012-07-04 匹配在 2012 年 7 月 4 日之前创建、含有 "cats" 字样的议题。 |
您也可以在日期后添加可选的时间信息 THH:MM:SS+00:00
,以便按小时、分钟和秒进行搜索。 这是 T
,随后是 HH:MM:SS
(时-分-秒)和 UTC 偏移 (+00:00
)。
查询 | 示例 |
---|---|
*YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*+*00*:*00* |
cats created:2017-01-01T01:00:00+07:00..2017-03-01T15:30:15+07:00 匹配在 2017 年 1 月 1 日凌晨 1 点(UTC 偏移为 07:00 )与 2017 年 3 月 1 日下午 3 点(UTC 偏移为 07:00 )之间创建的议题。 UTC 偏移量 07:00 ,2017 年 3 月 1 日下午 3 点。 UTC 偏移量 07:00 。 |
*YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z |
cats created:2016-03-21T14:11:00Z..2016-04-07T20:45:00Z 匹配在 2016 年 3 月 21 日下午 2:11 与 2016 年 4 月 7 日晚上 8:45 之间创建的议题。 |
注:按仓库创建或上次更新时间搜索
您可以基于创建时间或上次更新时间过滤仓库。 对于仓库创建,您可以使用 created
限定符;要了解仓库上次更新的时间,您要使用 pushed
限定符。 pushed
限定符将返回仓库列表,按仓库中任意分支上最近进行的提交排序。
排除特定结果
您可以使用 NOT
语法排除包含特定字词的结果。 NOT
运算符只能用于字符串关键词, 不适用于数字或日期。
查询 | 示例 |
---|---|
NOT |
hello NOT world 匹配含有 "hello" 字样但不含有 "world" 字样的仓库。 |
缩小搜索结果范围的另一种途径是排除特定的子集。 您可以为任何搜索限定符添加 -
前缀,以排除该限定符匹配的所有结果。
查询 | 示例 |
---|---|
-*QUALIFIER* |
cats stars:>10 -language:javascript 匹配含有 "cats" 字样、有超过 10 个星号但并非以 JavaScript 编写的仓库。 |
mentions:defunkt -org:github 匹配提及 @defunkt 且不在 GitHub 组织仓库中的议题 |
对带有空格的查询使用引号
如果搜索含有空格的查询,您需要用引号将其括起来。 例如:
- cats NOT "hello world" 匹配含有 "cats" 字样但不含有 "hello world" 字样的仓库。
- build label:"bug fix" 匹配具有标签 "bug fix"、含有 "build" 字样的议题。
某些非字母数字符号(例如空格)会从引号内的代码搜索查询中删除,因此结果可能出乎意料。
使用用户名的查询
如果搜索查询包含需要用户名的限定符,例如 user
、actor
或 assignee
,您可以使用任何 GitHub 用户名指定特定人员,或使用 @me
指定当前用户。
查询 | 示例 |
---|---|
QUALIFIER:USERNAME |
author:nat 匹配 @nat 创作的提交。 |
QUALIFIER:@me |
is:issue assignee:@me 匹配已分配给结果查看者的议题 |
@me
只能与限定符一起使用,而不能用作搜索词,例如 @me main.workflow
。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。