搜索 GitHub 时,你可以构建匹配特定数字和单词的查询。
搜: 仓库基本信息
in: 限定搜索的范围
关键字 in 是用来限定搜索的范围,可以指定是在名称、描述、readme文档中搜索关键字
- in:name:指定搜索范围是仓库名称
- in:description:指定搜索范围是摘要中
- in:readme:指定搜索范围是readme文档中
- location:china, 匹配用户填写的地址在中国
- language:java 匹配开发语言是java的开发者
- topic: XXX 匹配特定主题分类的所有仓库
比如,指定项目仓库名称springboot、mybatis、demo三个关键字,那么搜索如下:
in:name springboot mybatis demo in:description 单点登录 language:java
带有用户名的查询
如果你的搜索查询包含需要用户名的限定符,例如user
, actor
, or assignee
,你可以使用任何 GitHub 用户名来指定特定人员,或@me
, 来指定当前用户。
格式 | 例子 |
QUALIFIER:USERNAME |
author:nat 匹配由@nat 创作的提交 |
QUALIFIER:@me |
is:issue assignee:@me 匹配分配给查看结果的人的issues |
你只能@me
与限定符一起使用,而不能用作搜索词,例如@me main.workflow
.
搜: 仓库的stars, fork, push等
查询大于或小于另一个值的值
你可以使用>
、>=
、<
和<=
来搜索大于、大于或等于、小于和小于或等于另一个值的值。
方式如下:
- stars:> :筛选stars数量大于某个值的仓库
- stars:start…end :筛选stars数量在start和end区间的仓库
- fork:>
- fork:start…end
- followers:>1000 , 匹配拥有超过1000名关注者的开发者
格式 | 例子 |
>n |
cats stars:>1000 匹配具有超过 1000 星的单词“cats”的存储库。 |
>=n |
**cats topics:>=5**匹配具有 5 个或更多主题的带有单词“cats”的存储库。 |
<n |
cat size:<10000匹配小于 10 KB 的文件中带有单词“cats”的代码。 |
<=n |
**cats stars:<=50**匹配具有 50 个或更少星的单词“cats”的存储库。 |
你还可以使用范围查询来搜索大于或等于或小于或等于另一个值的值。
格式 | 例子 |
n…* | **cats stars:10…* **等效于stars:>=10 并匹配具有 10 个或更多星的带有单词“cats”的存储库。 |
**…*n | **cats stars:*…10 **效于stars:<=10 并匹配带有单词“cats”且星数不超过 10 的存储库。 |
查询范围之间的值
你可以使用范围语法来搜索范围内的值,其中第一个数字n是最小值,第二个数字是最大值。n..n
格式 | 例子 |
n..n |
**cats stars:10…50**匹配具有 10 到 50 星之间的单词“cats”的存储库。 |
查询日期
你可以搜索日期,通过使用>
,>=
,<
,<=
,和范围查询。
日期格式必须遵循ISO8601标准,即YYYY-MM-DD
(年-月-日)。
格式 | 例子 |
>YYYY-MM-DD |
cat created:>2016-04-29匹配在 2016 年 4 月 29 日之后创建的带有“cats”一词的issues 。 |
>=YYYY-MM-DD |
cat created:>=2017-04-01匹配在 2017 年 4 月 1 日或之后创建的带有“cats”一词的issues 。 |
<YYYY-MM-DD |
cat push:<2012-07-05匹配 2012 年 7 月 5 日之前推送到的存储库中带有单词“cats”的代码。 |
<=YYYY-MM-DD |
cat created:<=2012-07-04匹配在 2012 年 7 月 4 日或之前创建的带有“cats”一词的issues 。 |
YYYY-MM-DD..YYYY-MM-DD |
cat push:2016-04-30…2016-07-04匹配在 2016 年 4 月底和 7 月之间推送到的带有“cats”一词的存储库。 |
YYYY-MM-DD..* |
cats created:2012-04-30…* 匹配 2012 年 4 月 30 日之后创建的包含单词“cats”的issues 。 |
*..YYYY-MM-DD |
**cats created:*…2012-07-04**匹配在 2012 年 7 月 4 日之前创建的包含单词“cats”的issues 。 |
你还可以THH:MM:SS+00:00
在日期后添加可选的时间信息,以按小时、分钟和秒进行搜索。即T
,后跟HH:MM:SS
(小时-分钟-秒) 和 UTC 偏移量 ( +00:00
)。
格式 | 例子 |
YYYY-MM-DDTHH:MM:SS+00:00 |
cat created:2017-01-01T01:00:00+07:00…2017-03-01T15:30:15+07:00匹配 2017 年 1 月 1 日凌晨 1 点之间创建的issues ,UTC 偏移量为07:00 ; 2017 年3 月 1 日下午 3 点,UTC 偏移量为07:00 . |
YYYY-MM-DDTHH:MM:SSZ |
cat created:2016-03-21T14:11:00Z…2016-04-07T20:45:00Z匹配在 2016 年 3 月 21 日下午 2:11 和 2106 年 4 月 7 日晚上 8:45 之间创建的issues 。 |
# 例如: in:description 单点登录 language:java pushed:>2019-12-01
搜: 过滤一些信息
排除某些结果
你可以使用NOT
语法排除包含某个单词的结果。该NOT
运算符只能用于字符串关键字。它不适用于数字或日期。
格式 | 例子 |
NOT |
hello NOT world匹配包含单词“hello”但不包含单词“world”的存储库。 |
缩小搜索结果的另一种方法是排除某些子集。你可以在任何搜索限定符前加上 a-
以排除与该限定符匹配的所有结果。
格式 | 例子 |
-QUALIFIER |
**mentions:defunkt -org:github**匹配提及@defunkt 且不在 GitHub 组织中的存储库中的issues 。 |
搜: 匹配词语的完整搜索
对带有空格的查询使用引号
如果你的搜索查询包含空格,则需要用引号将其括起来。例如:
- cats NOT "hello world"匹配带有单词 “cats” 但不匹配单词"hello world" 的存储库。
- build label:"bug fix"匹配带有 “build” 标签且标签为 “bug fix” 的issues 。
某些非字母数字符号(例如空格)从引号内的代码搜索查询中删除,因此结果可能出乎意料。
搜: 受喜爱的项目
Awesome + 关键字
Awesome 似乎已经成为不少 GitHub 项目喜爱的命名之一
公式:awesome关键字:awesome系列,一般用来收集学习、工具、书籍类相关的项目
搜索优秀的redis相关的项目,包括框架,教程等 awesome redis
搜: 项目内
项目内搜索
使用英文字母 t ,开启项目内搜索
高亮显示某行代码
一行:地址后面紧跟 #L12
例如: https://github.com/redis/redis/blob/unstable/redis.conf#L12
多行:地址后面紧跟 #Lx - #Ln
例如: https://github.com/redis/redis/blob/unstable/redis.conf#L12-L45
界面: 高级搜索
除了使用这种特定的限定词来筛选之外,其实github还给我们提供了一种筛选的搜索链接。
https://github.com/search/advanced
其实就是界面化的搜索条件筛选框,想不起搜索关键词或者单词的时候可以收藏这个高级搜索界面哈。
GitHub 隐藏功能
参考链接:
https://github.com/search/advanced