跳到主要内容

理解搜索语法

在搜索 GitHub 时,您可以构建与特定数字和单词匹配的查询。

注意

以下语法适用于非代码搜索。有关代码搜索语法的更多信息,请参阅“理解 GitHub 代码搜索语法”。

查询大于或小于另一个值的值

您可以使用>>=<<= 来搜索大于、大于或等于、小于和小于或等于另一个值的值。

查询示例
>ncats stars:>1000 匹配包含单词“cats”且星数超过 1000 的代码库。
>=ncats topics:>=5 匹配包含单词“cats”且主题数量为 5 个或以上的代码库。
<ncats size:<10000 匹配文件中包含单词“cats”且大小小于 10 KB 的代码。
<=ncats stars:<=50 匹配包含单词“cats”且星数为 50 个或以下的代码库。

您还可以使用范围查询来搜索大于或等于或小于或等于另一个值的值。

查询示例
n..*cats stars:10..* 等效于 stars:>=10,匹配包含单词“cats”且星数为 10 个或以上的代码库。
*..ncats stars:*..10 等效于 stars:<=10,匹配包含单词“cats”且星数为 10 个或以下的代码库。

查询指定范围内的值

您可以使用范围语法n..n 来搜索指定范围内的值,其中第一个数字 N 是最小值,第二个数字是最大值。

查询示例
n..ncats stars:10..50 匹配包含单词“cats”且星数在 10 到 50 之间的代码库。

查询日期

您可以使用>>=<<=范围查询来搜索早于或晚于另一个日期,或落在日期范围内的日期。日期格式必须遵循ISO8601 标准,即YYYY-MM-DD(年-月-日)。

查询示例
>YYYY-MM-DDcats created:>2016-04-29 匹配包含单词“cats”且创建日期在 2016 年 4 月 29 日之后的 Issue。
>=YYYY-MM-DDcats created:>=2017-04-01 匹配包含单词“cats”且创建日期在 2017 年 4 月 1 日或之后的 Issue。
<YYYY-MM-DDcats pushed:<2012-07-05 匹配包含单词“cats”且最后推送日期在 2012 年 7 月 5 日之前的代码库。
<=YYYY-MM-DDcats created:<=2012-07-04 匹配包含单词“cats”且创建日期在 2012 年 7 月 4 日或之前的 Issue。
YYYY-MM-DD..YYYY-MM-DDcats pushed:2016-04-30..2016-07-04 匹配包含单词“cats”且最后推送日期在 2016 年 4 月底到 7 月之间的代码库。
YYYY-MM-DD..*cats created:2012-04-30..* 匹配包含单词 "cats" 且创建日期为 2012 年 4 月 30 日或之后 的 Issue。
*..YYYY-MM-DDcats created:*..2012-07-04 匹配包含单词 "cats" 且创建日期为 2012 年 7 月 4 日或之前 的 Issue。

您还可以添加可选的时间信息THH:MM:SS+00:00在日期之后,按小时、分钟和秒进行搜索。即T后跟HH:MM:SS(小时-分钟-秒),以及 UTC 偏移量 (+00:00)。

查询示例
YYYY-MM-DDTHH:MM:SS+00:00cats 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)之间创建的 Issue。
YYYY-MM-DDTHH:MM:SSZcats created:2016-03-21T14:11:00Z..2016-04-07T20:45:00Z 匹配在 2016 年 3 月 21 日下午 2:11 到 2016 年 4 月 7 日晚上 8:45 之间创建的 Issue。

排除与限定符匹配的结果

您可以通过排除一个或多个子集来缩小搜索结果范围。要排除与限定符匹配的所有结果,请在搜索限定符前面加上一个连字符 (-)。

查询示例
-限定符cats stars:>10 -language:javascript 匹配包含单词“cats”且星数超过 10 个,但不是用 JavaScript 编写的代码库。
-限定符mentions:defunkt -org:github 匹配提及 @defunkt 但不在 GitHub 组织中的代码库的 Issue。

排除包含特定关键词的结果

您可以使用NOT语法排除包含特定单词的结果。NOT运算符只能用于字符串关键字。它不适用于数字或日期。

查询示例
NOThello NOT world 匹配包含单词“hello”但不包含单词“world”的代码库。

对包含空格的查询使用引号

如果您的搜索查询包含空格,则需要用引号将其括起来。例如

包含用户名查询

如果您的搜索查询包含需要用户名的限定符,例如useractorassignee,您可以使用任何 GitHub 用户名来指定特定人员,使用@me来指定当前用户,或使用@copilot来指定 Copilot。

查询示例
限定符:用户名author:nat 匹配由 @nat 创作的提交
限定符:@meis:issue assignee:@me 匹配分配给查看结果的人员的 Issue
限定符:@copilotis:pr reviewed-by:@copilot 匹配由 Copilot 审查的拉取请求。更多信息,请参见“使用 GitHub Copilot 代码审查”。

你只能将@me@copilot 与限定词一起使用,不能将其作为搜索词使用,例如@me main.workflow