Github检索技巧

github搜索语法

1. 限定词

支持的限定词: 仓库名(name)、项目描述(description)、内容、说明文件(readme)

关键字 示例 说明
in:name java in:name 查询仓库名中含有java的项目.
in:description java in:description 查询项目描述中有java的项目
in:readme java in:readme 查询readme中有java的项目
repo:owner/name repo:annwyn/helloworld 查询用户annwyn下的helloworld项目

辅助限定词: 可以通过项目大小(size)、拥护者数(followers)、fork数(forks)、stars数(stars)、创建时间(created)、更新时间(pushed)、项目所用语言(language)、topic标签(topic)、topic标签数(topics)...来筛选项目。辅助限定词可以多个并用,用空格隔开就行,可以搭配限定词使用,也可单独使用。

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

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

查询 示例 说明
>n cats starts:>1000 匹配含有 "cats" 字样、星标超过 1000 个的仓库。
>=n cats topics:>=5 匹配含有 "cats" 字样、有 5 个或更多主题的仓库。
<n cats size:<10000 匹配小于 10 KB 的文件中含有 "cats" 字样的代码
<=n cats starts:<=50 匹配含有 "cats" 字样、星标不超过 50 个的仓库。

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

查询 示例 说明
n..* cats size:10...* 等同于starts:>=10并匹配含有 "cats" 字样、有 10 个或更多星号的仓库。
*..n cats starts:*...10 等同于starts:<=10并匹配含有 "cats" 字样、有不超过 10 个星号的仓库。

3. 查询范围之间的值

可以使用范围语法 n..n 搜索范围内的值,其中第一个数字 n 是最低值,而第二个是最高值。

查询 示例 说明
n..n cats starts:10...50 匹配含有 "cats" 字样、有 10 到 50 个星号的仓库。

4. 查询日期

可以通过使用 >>=<<= 和 范围查询 搜索早于或晚于另一个日期,或者位于日期范围内的日期。其中日期格式必须遵循[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:>*..2016-04-30 匹配在 2012 年 7 月 4 日之前创建、含有 "cats" 字样的议题。

也可以在日期后添加可选的时间信息 THH:MM:SS+00:00,以便按小时、分钟和秒进行搜索。 这是 T,随后是 HH:MM:SS(时-分-秒)和 UTC 偏移 (+00:00)。

查询 示例 说明
yyyy-MM-ddTHH:mm:ss+00:00 cats created:>2017-01-01T01:00:00+07:00 匹配在 2017 年 1 月 1 日凌晨 1 点(UTC 偏移为 07:00)之后创建的议题。
yyyy-MM-ddTHH:mm:ssZ cats create:>2017-01-01T01:00:00Z 匹配在 2017 年 1 月 1 日凌晨 1 点之后创建的议题。

5. 排除特定结果

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

查询 示例 说明
NOT hello NOT world 匹配含有 "hello" 字样但不含有 "world" 字样的仓库。
- cats starts:>10 -language:java 匹配含有 "cats" 字样、有超过 10 个星号但并非以java 编写的仓库。
上一篇:REST API设计的9个实践


下一篇:基于Tensorflow和Keras实现猫狗分类