在github开源市场如何高效寻找优秀开源项目
作为程序员,不论是开发还是学习,肯定会用到开源项目,那么怎么快速在开源网站找到这些项目呢?
常用的开源网站有:github 和 gitee
github是全球最大的开源社区,今天就以github为例,演示一下
github界面

- 一般来说,优秀的项目,维护会比较频繁,提交数也就会多一点。当然,一个好的项目,它的
Star数和Fork数也会比较多。
普通人搜索的方式
1、打开github
2、输入关键词,搜出来一堆的项目,随便浏览一下,简单看一下README文档。嗯,感觉还不错的样子!
3、然后就是克隆仓库,看一下源码,发现看不懂,内心OS:这是给人看的吗?删了删了!

用这种方法想要找到适合自己的开源项目,跟大海捞针没什么区别。只会一次次的浪费时间,也会消耗自己的耐心和精力,到最后干脆摆烂躺平了。

不过在看这篇文章的你,肯定不想这样啦!那么下面的10个github高级搜索技巧,赶紧学起来吧!
10个高级搜索技巧
⑴、通过in关键词搜索
in关键词可以用来限制搜索范围,精准搜索仓库名称name,说明description 以及README 文件中的内容。description 就是github界面图中, About 中的信息。
| 示例 | 说明 |
|---|---|
| in:name C++ | 搜索项目名称中包含 "C++" 的所有项目 |
| in:description machine learning | 搜索项目描述中包含 "machine learning" 的所有项目 |
| in:readme API | 搜索项目介绍文档(README)中包含 "API" 的所有项目 |
下面以搜索spring boot相关的项目为例:
- 如果直接在搜索栏输入
spring boot并回车,会搜到46w个结果

做一个限制,这次搜索项目名里含有 spring boot 的
in:name spring boot
看到没有,数量马上又46w降到29.5w,但是项目数量还是太多了。没关系,我们可以再加其他的搜索限制,接着往下看!

⑵、通过 stars、forks 数量搜索
一个优秀的项目 star 数量和 fork 数量肯定不会少,那么我可以使用 大于某个数,或者在某个范围之间的方式来过滤项目:
- 按照星标数量搜索:
- 语法:
关键字 stars:>=数量或关键字 stars:数量1..数量2
- 语法:
- 按照分支数量搜索:
- 语法:
关键字 forks:>=数量或关键字 forks:数量1..数量2
- 语法:
| 示例 | 说明 |
|---|---|
| javascript stars:>1000 | 搜索所有星标数量大于1000JavaScript项目 |
| javascript stars:1000..2000 | 搜索所有星标数量在1000到2000之间的JavaScript项目 |
| web framework forks:>500 | 搜索所有分支数量大于500的 Web 框架项目 |
| web framework forks:500..1000 | 搜索所有分支数量在500到1000之间的 Web 框架项目 |
我们进一步限制搜索范围,要求star数量大于2000,数量马上变成只有31个
in:name spring boot starts:>2000

再要求fork数量大于1000,满足要求的项目数量更少了,只有19个
in:name spring boot starts:>2000 forks:>1000

⑶、按项目创建时间、更新时间搜索
如果优秀项目比较多,相信大家都会喜欢最新的项目,那么就可以把老旧的项目筛选出去。
要是本来就没几个项目供你选,就没必要做这一步了。
- 按照项目创建时间搜索:
- 语法:
关键字 created:>=日期
- 语法:
- 按照项目更新时间搜索:
- 语法:
关键字 pushed:>=日期
- 语法:
| 示例 | 说明 |
|---|---|
| java created:>=2022-01-01 | 搜索在2022年1月1日之后创建的Java项目 |
| android pushed:>=2022-01-01 | 搜索在2022年1月1日之后更新的Android项目 |
- 演示:

⑷、按照地区、编程语言搜索
一般我们都是想找到自己会的编程语言写的项目,否则还得专门去学一遍语言才能看懂,那岂不是兜了一大圈。
另外,要是项目有中文的文档说明,就更好了!(虽然很多优秀的项目都是用英文写的,程序员不能排斥学习英语呀!)
- 按照地区搜索:
- 语法:
location:地区 关键字
- 语法:
- 按照编程语言搜索:
- 语法:
language:编程语言 关键字
- 语法:
| 示例 | 说明 |
|---|---|
| location:china | 地区为中国 |
| language:python | 编程语言为python |
- 例如使用 python 编程语言,且star数量大于1000的国产项目,搜索条件就是:location:china language:python stars:>1000

⑸、按文件名、仓库大小、扩展名搜索
- 凡事都是从易到难,一开始我们更倾向于找一些小型的项目来学习,那么可以用
size来筛选一些简单点的项目。
- 按照文件名搜索:
- 语法:
关键字 filename:文件名
- 语法:
- 按照仓库大小搜索:
- 语法:
关键字 size:>=大小
- 语法:
- 按照扩展名搜索:
- 语法:
关键字 extension:扩展名
- 语法:
| 示例 | 说明 |
|---|---|
| machine learning filename:utils | 搜索包含文件名为 utils 的机器学习项目 |
| data analysis size:<5000 | 搜索仓库小于5000KB的数据分析项目(默认单位 KB) |
| web development extension:html | 搜索包含HTML文件的 web development 项目 |
- 举个例子:
data analysis size:<5000 extension:py

⑹、按文件、路径内容搜索
按照文件内容搜索:
- 语法:
关键字 in:file 搜索内容
- 语法:
按照路径内容搜索:
- 语法:
关键字 path:路径/to/search
- 语法:
| 示例 | 说明 |
|---|---|
| machine learning in:file | 包含 "machine learning" 内容的所有文件 |
| database path:src/ | 搜索在路径为 src/ 下的所有文件中包含关键字 "database" 的项目 |
例子: 假设你想要查找包含 "authentication" 内容的文件,并且这些文件位于名为 src/ 的路径下,你可以使用如下搜索条件
- authentication in:file path:src/

⑺、根据某个人或组织进行搜索
- 这个可以用来精准搜索你关注的大神是不是提交了新的项目
- 搜索特定个人的项目:
- 语法:
user:用户名 关键字
- 语法:
- 搜索特定组织的项目:
- 语法:
org:组织名 关键字
- 语法:
| 示例 | 说明 |
|---|---|
| user:torvalds linux kernel | 搜索用户 Linus Torvalds 的项目中包含 "linux kernel" 的内容 |
| org:Microsoft azure cloud | 搜索 Microsoft 组织的项目中包含 "azure cloud" 的内容 |

⑻、根据仓库的LICENSE搜索
在使用任何开源项目之前,最好详细阅读并理解项目所采用的具体授权协议,因为有的开源项目作者是明确禁止商用的,如果你使用在商业上,后面会很麻烦的!
按照许可证搜索:
- 语法:
license:许可证类型 关键字
| 示例 | 说明 |
|---|---|
| license:gpl encryption | 搜索包含GPL许可证的仓库中含有 "encryption" 关键字的项目 |

⑼、awesome加强搜索
awesome往往整合了大量的同一领域的资料,收集学习、工具、书籍类相关的项目,方便大家更好的学习。比如搜索优秀的java相关的项目,包括框架、教程等
awesome java

⑽、热门搜索(GitHub Trend 和 GitHub Topic)
- GitHub Trend 允许你查看当前在 GitHub 上受欢迎的项目,根据不同的编程语言和时间范围进行筛选

- GitHub Topic 是一种对项目进行标签分类的方式。GitHub 上的项目可以被分配到不同的主题标签,使得你可以通过主题来浏览和发现项目。

以上就是关于高效寻找开源项目的全部内容了!
在github开源市场如何高效寻找优秀开源项目的更多相关文章
- Golang优秀开源项目汇总, 10大流行Go语言开源项目, golang 开源项目全集(golang/go/wiki/Projects), GitHub上优秀的Go开源项目
Golang优秀开源项目汇总(持续更新...)我把这个汇总放在github上了, 后面更新也会在github上更新. https://github.com/hackstoic/golang-open- ...
- github优秀开源项目大全-iOS
github优秀开源项目大全-iOS APR 25TH, 2014 前言 本文旨在搜集github上优秀的开源项目 本文搜集的项目都是用于iOS开发 本文会持续更新… 完整客户端 ioctocat g ...
- gitHub优秀android项目
转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包括ListView.ActionBar.M ...
- github优秀前端项目分享(转)
http://microjs.com/# 该网站的资源都托管到了github,microjs.com是一个可以让你选择微型的js类库的网站,该网站里的js库都是压缩后不大于5KB的,非常实用 http ...
- Android中常用的优秀开源框架
Android开源框架库分类,挑选出最常用,最实用的开源项目,本篇主要介绍的是优秀开源框架库和项目,UI个性化控件会独立介绍.UI个性化控件 Index Dependency Injections A ...
- Android常用优秀开源框架
Android常用优秀开源框架 https://github.com/Ericsongyl/AOSF AOSF:全称为Android Open Source Framework,即Android优秀开 ...
- Go优秀开源项目推荐
前言 本文主要是收集Go语言开发的一些优秀项目和框架,个人见识有限肯定还有很多优秀的项目没有收录的,假如大家有好的Go项目可以在文末留言. Go优秀项目收集仓库 GolangFamilygithub ...
- The Data Way Vol.1|风口下的开源市场:如何看待开源与商业的关系?
关于「The Data Way」 「The Data Way」是由 SphereEx 公司出品的一档播客节目.这里有开源.数据.技术的故事,同时我们关注开发者的工作日常,也讨论开发者的生活日常:我们聚 ...
- 给力!斩获 GitHub 14000 Star,两周创办开源公司获数百万美元融资
文章来源|AI科技大本营 作者|伍杏玲 上世纪 90 年代初,21 岁大学生 Linus Torvalds 开源 Linux 操作系统,自此掀起全球开源浪潮.随后"中国 Linux 第一人& ...
- GitHub 上 57 款最流行的开源深度学习项目
转载:https://www.oschina.net/news/79500/57-most-popular-deep-learning-project-at-github GitHub 上 57 款最 ...
随机推荐
- C语言:删除顺序表中重复的信息—(删除顺序表中重复的单词)
如何删除顺序表中的重复单词: (开始看内容之前容朕说一句:如果你最后怎么都运行不了你想要的结果,①我敢保证大概率是你的下标越界你的下标越界了你的下标越界了.②在我这程序里面你肯定打少了p--,少了p- ...
- java学习之旅(day.07)
面向对象编程(oop) 面向过程思想:线性思维 步骤清晰简单,每一步做什么很明确 适合处理较为简单地问题 面向对象思想:总分 抽象 属性+方法=类 分类的思维模式,思考问题首先会解决问题需要哪些分类, ...
- 10-flask博客项目
centos7 编译安装python3.7.1 安装步骤 centos7自带python2,由于执行yum需要python2,所以即使安装了python3也不能删除python21.安装依赖包yum ...
- linux wget命令的重要用法:下载文件并保存,后台下载
Linux wget命令是一个下载文件的工具,它用在命令行下. #从网络下载一个文件并保存在当前目录 [root@node5 ~]# wget http://cn.wordpress.org/word ...
- PyQGIS二次开发指南
当你的数据处理使用的是Python语言,而你的导师又让你开发界面,那么PyQGIS二次开发指南是你必读的圣经.QGIS支持Python语言进行二次开发,你将学会如何使用Qt Designer进行界面设 ...
- docker安装MySQL8.0.35主从复制(实战保姆级)
很久没有记录了,今天有时间就记录一下最近安装遇到的问题 liunx安装docker这个是前提,就不多过述 1 准备两台服务器 10.104.13.139 10.104.13.140 2 确保liunx ...
- u8二次开发再遇问题再总结
在调用api生成采购入库单时,报错:该操作会造成订单到货和入库同时存在,请重新检查操作!普通采购必有订单,存货[0501-0304-0075]不能手工录入 这是因为:采购入库单单据必须要录入上游单据, ...
- lodash已死?radash库方法介绍及源码解析 —— 随机方法 + 字符串篇
前言 大家好,我是阿瓜.一个励志想成为艾弗森的前端瓜 ~ 我们已经分享了 radash 库中数组.对象等相关的方法,大家感兴趣的可以前往主页查看阅读: 或许你最近在某个地方听过或者看过 radash ...
- DevOps全面综述:从概念到实践
这篇文章详尽介绍了DevOps的背景.核心实践.工具和技术,探讨了团队协作.文化建设及组织变革,旨在帮助企业高效实现持续交付和创新. 关注作者,分享互联网架构.云服务技术的全维度知识.作者拥有10+年 ...
- vue-devtools
今天分享个vue的开发者工具,vue2和vue3都可以使用 先来看个效果: 如何安装? 打开官网vue-devtools 选择你需要版本 安装完记得重启下浏览器,不然是没效果的