Github (https://github.com/)是全球最大的开源社区,也被称作全球最大的同性交友网站,大部分的程序员都会在上面提交自己的代码,很多优秀的开源作品也会放在上面,比如:springBoot,greenDAO,EventBus 等
我们可以利用 Github 的搜索功能,寻找自己感兴趣或者有帮助的开源作品,But,如果我们仍然只是简单的在搜索框里输入譬如 “image”,或者 “communicate” 这样的字段,往往效率很低,因为有大量我们不感兴趣的项目会被过滤出来
正确的姿势,是学会几招关键字的用法,在我们限定的条件中查找项目,提高检索的效率
先简单说下一个 GitHub 项目中存在哪些搜索项
仓库名称中做限定
使用 in:name
关键字
比如要查找包含 image 字段的仓库名,使用 in:name image
仓库总数是 256919,而不加限定词直接搜 image
仓库数 523090,整整多了一倍
stars 中做限定
使用 stars:>数字
关键字
高 star 一般意味着项目更加热门,以及优质,我们通过关键字将 star 数限定在 500 以上
使用 stars:>500
观察仓库数,进一步减少到 275 个
这里举例子使用的是大于符号 >,同时 >=, <, <=,也是可以用的
编程语言中做限定
使用 language:
关键字
我们只想看 Python 的项目,使用 language:python
范围继续被缩小到只有 39 个,下一步继续精简搜索内容
限定更新时间
使用 pushed:>YYYY-MM-DD
关键字
我们希望这个项目近期仍然在更新,比如最近一个月还在提交代码,使用pushed:>2020-03-25
活跃的项目还有 8 个
限定描述
使用 in:description
关键字
想限定描述内容里出现 download 字段,使用 in:description download
目标项目再一次缩小,圈定在 4 个
基本上到这里,我们就可以慢慢挑选合适的项目来进一步的研究了
当然,还有其他的搜索关键字,如下
限定用户
使用 user:
关键字
例如我想看看 Android 大神 Jake Wharton 的作品,使用 user:jakewharton
限定 README.md 里的字段
使用 in:readme
关键字
限定 License
使用 license:
关键字
想要使用开源项目做商业用途的话,要注意选择合适的开源协议,它们的授权范围不一样,常见的协议有:Apache-2.0,MIT,BSD