Noise科学虫洞

Github技巧:搜索技巧

前言

github 作为全球最大的开源软件项目托管平台,相信很多程序员都在使用,不仅仅是因为它可以免费的作为我们公有或者私有的代码仓库,更因为 github 上面有大量的开源学习项目或资源,秉着开源自由的理念,吸引了大量的个人或者企业开发者。

那么面对如此海量的代码仓库,如何才能在众多的资源中搜索出更优秀,更符合自己需求的项目呢?

比如我想搜索一个 springboot 项目,你是否就直接输入 springboot 关键字直接搜索,但是搜索出了 118,085 个结果,当然了,你还可以做一些简单的排序,比如通过 stars、forks 的数量。

但这样搜索出来的结果真的精确吗?接下来,我们来演示一下几个我们常用的 github 搜索技巧,让搜索出来的结果更加精确、符合要求!

in

关键字 in 是用来限定搜索的范围,可以指定是在名称、描述、readme 文档中搜索关键字

  • in:name:指定搜索范围是仓库名称
  • in:description:指定搜索范围是摘要中
  • in:readme:指定搜索范围是 readme 文档中

比如,指定项目仓库名称 springboot、mybatis、demo 三个关键字,那么搜索如下:

in:name springboot mybatis demo

这样搜索出来的项目就是一个简单的 demo 整合项目,而不是综合项目。 你还可以这样搜

in:description springboot mybatis 整合

stars 、forks

通常我们判断一个项目好不好,可以通过项目的 stars 和 fork 数量来判断,当然了,这也不是绝对的,github 中还隐藏这很多不为人所知的优秀项目,等着你挖掘哈。

方式如下:

  • stars:> :筛选 stars 数量大于某个值的仓库
  • stars:start..end :筛选 stars 数量在 start 和 end 区间的仓库
  • fork:>
  • fork:start..end

所以,通过 stars 、forks 关键字,我们可以通过 stars 、forks 数量来过滤一部分。比如,我要筛选搜索结果中,stars 数量大于 50 的项目。那么如下:

in:name springboot mybatis demo stars:>50

language

这个简单,指定项目的编写语言,如 java、python、php 等。比如我们搜索单点登录,如果我们直接搜索in:description 单点登录,那么出现的结果会包含各种语言的实现项目,但是如果你加上了 java 语言的限定条件之后,搜索出来的结果就只有 java 的。

in:description 单点登录 language:java

created、pushed

创建日期、更新日期。项目久不维护了,或者项目已经创建很久了,那么项目的技术有时候就已经过时了,比如以前 Springboot 的 1.5 版本的创建项目就不是很适合现在了,现在我们学习的话直接上手 2.0 版本以上的比较好,所以找新项目,还得跟紧技术的迭代速度。

in:description 单点登录 language:java pushed:>2021-11-11

通常来说,stars 数量多,维护频繁的项目都是比较优

其他

还可以根据协议license:;或者项目作者user:;或者仓库的大小size:>=;被关注人数followers:,只不过大家就用得比较少。

高级搜索

除了使用这种特定的限定词来筛选之外,其实 github 还给我们提供了一种筛选的搜索链接。

https://github.com/search/advanced

其实就是界面化的搜索条件筛选框,想不起搜索关键词或者单词的时候可以收藏这个高级搜索界面哈。

Thoughts? Leave a comment