如何在Github上精确搜索开源项目
开源项目的组成部分
开源项目由哪些组成部分:
- name: 项目名
- description: 项目的简要描述
- 项目的源码
- README.md: 项目的详细介绍
那么除了这些要素之外,项目本身的star
数和fork
数,也是评判一个开源项目是否火热的标准,这同时也是一个很重要的搜索标准。另外我们也要注意观察这个项目的最近更新日期,因为项目越活跃,那么它的更新日期也更加频繁。
以上要素就是我们在进行搜索的时候要注意的一些关键点。
如何搜索
假设我们现在要搜索Spring,相信大部分都是直接在搜索框里输入:“Spring”,然后一回车,你就会发现情况像下面这样:
搜索结果会显示非常多的开源项目,让你无从下手,很多小伙伴搜到这一步就放弃了,因为项目太多了无法找到符合自己要求的开源项目,所以这样搜索非常的不准确。我们需要使用稍微精确一点的搜索方法。
根据 name
搜索
搜索项目名
里面包含Spring的项目:
in:name Spring
搜索结果如下:
可以看到,这些搜索结果都是项目名里面带有“Spring”关键字的项目,但是搜索到的开源项目数量依旧很多。我们需要进一步的精确搜索,比如我再精确到项目的star数大于5000+:
in:name Spring stars:>5000
搜索结果如下:
搜索结果瞬间精确了很多,现在只有24个项目可供选择。当然我们一般不会把star数设置得这么高,一般设置个1000就差不多了。
同理,我们也可以按照fork的数量来进行搜索:
in:name Spring stars:>5000 forks:>3000
搜索结果如下:
你会发现,结果越来越精确,目前只有15个符合条件的开源项目了。
按照README
来搜索
搜索README.md
里面包含React
的项目:
in:readme Spring
搜索结果如下:
结果有这么多,那么我们再限制一下它的star
数和fork
数:
in:readme Spring stars:>3000 forks:>3000
搜索结果如下:
搜索结果一下子精确到了92个。这个时候你再去选择符合你条件的开源项目的时候就会变得容易很多。
按照descriptin
搜索
假设我们现在要学习微服务
的项目,我们搜索项目描述(description)
里面包含微服务
的项目:
in:description 微服务
搜索结果如下:
结果有这么多,那我们接着增加一些筛选条件:
in:description 微服务 language:java
language:java
的意思是我们把语言限制为java
搜索结果如下:
搜索结果精确了很多,但是数量还是很多,我们在进一步的精确搜索根据最近更新时间条件进行筛选:
in:description 微服务 language:java pushed:> 2022-05-07
pushed:>2022-05-07 的意思是我们把项目的最后更新时间限制到2022-05-07
搜索结果如下:
搜索结果还有70个了,说明这些项目就属于比较活跃的项目,我们可以从其中筛选符合我们条件的开源项目。
总结:
in:name xxx // 根据项目名搜索
in:readme xxx // 根据
README搜索
in:description xxx // 根据description搜索
精确筛选条件
stars:>xxx // stars数大于xxx
forks:>3000 // forks数大于xxx
language:xxx // 编程语言xxx
pushed:>YYYY-MM-DD // 最后更新时间大于YYYY-MM-DD
github高级搜索:https://github.com/search/advanced