身为程序员 你真的会使用 github 搜索吗?
![身为程序员 你真的会使用github搜索吗?](https://static001.geekbang.org/infoq/5d/5db2c56549fe486c6aeda036d7f80f70.jpeg)
前言
github
作为全球最大的开源软件项目托管平台,我相信不少程序员都在使用。但是你真的会使用github的搜索功能
吗?
我们经常会在 GitHub 上搜索
代码、项目、用户或查找相关主题
,最简单常用的方法是在GitHub主页搜索框中
直接输入相关信息进行查找
,比如我们要搜索spring-boot
相关项目如下图所示:
![](https://static001.geekbang.org/infoq/78/78a7c7fddfe11edc4f36a09456f64df5.png)
那如何能精准定位到我们需要找的代码、项目、用户或查找相关主题
呢?本文就详细来讲一下在GitHub上如何精准搜索的巧妙技巧
。
搜索语法篇
常用词含义
watch:会持续收到该项目的动态
fork:复制某个仓库到自己的 Github 仓库中
star:可以理解为点赞
clone:将项目下载至本地
follow:关注你感兴趣的作者,会收到他们的动态
搜索 GitHub 时,可以构建匹配特定数字和单词的查询。
查询大于或小于另一个值的值
可以使用 >、>=、< 和 <= 搜索大于、大于等于、小于以及小于等于另一个值的值。
![](https://static001.geekbang.org/infoq/9d/9d539207bfd15ba9316040ccae0f101d.png)
![](https://static001.geekbang.org/infoq/d0/d0c11938b769be50788857cf50e15a33.png)
![](https://static001.geekbang.org/infoq/7f/7f8a44d1a72b441b15469dc138e1d64b.gif)
还可以使用范围查询搜索大于等于或小于等于另一个值的值。
![](https://static001.geekbang.org/infoq/f7/f70f078bcbcccec1b098e1956dd73818.png)
![](https://static001.geekbang.org/infoq/8f/8f43f301e58a834e086d2079b90a15ba.gif)
查询范围之间的值
可以使用范围语法 n..n 搜索范围内的值,其中第一个数字 n 是最低值,而第二个是最高值。
![](https://static001.geekbang.org/infoq/78/78a7ebb8975f5c03338e3c4553d0dc29.png)
![](https://static001.geekbang.org/infoq/67/675855d3378c741af1f54b4eebd230a6.png)
查询日期
可以通过使用 >、>=、<、<= 和范围查询搜索早于或晚于另一个日期,或者位于日期范围内的日期。 日期格式必须遵循 ISO8601 标准,即 YYYY-MM-DD(年-月-日)。
![](https://static001.geekbang.org/infoq/f2/f23a0ca9891ba316c6025845c06bd22e.png)
也可以在日期后添加可选的时间信息 THH:MM:SS+00:00,以便按小时、分钟和秒进行搜索。 这是 T,随后是 HH:MM:SS(时-分-秒)和 UTC 偏移 (+00:00)。
就不演示了,跟上面是一样的,自行测试。
![](https://static001.geekbang.org/infoq/b8/b881846822bd146c0a9d2edb36747bc3.png)
排除特定结果
可以使用
NOT 语法
排除包含特定字词的结果。NOT 运算符只能用于字符串关键词
,不适用于数字或日期
。
![](https://static001.geekbang.org/infoq/59/5921a4f1d9b270158cb175cdc6090fb7.png)
![](https://static001.geekbang.org/infoq/27/279c84d85897f3ff9c94a0866ad3f908.gif)
缩小搜索结果范围的另一种途径是排除特定的子集。 您可以为任何搜索限定符添加
-
前缀,以排除该限定符匹配的所有结果。
![](https://static001.geekbang.org/infoq/0a/0a3f7076538eaa64ad215ac23118a77d.png)
![](https://static001.geekbang.org/infoq/bc/bc25a8f5a4777d481cae7a0e62640c95.png)
对带有空格的查询使用引号
如果搜索含
有空格
的查询,您需要用引号将其括起来
。
spring-boot NOT "hello world" 匹配含有 "spring-boot" 字样但不含有 "hello world" 字样的仓库。
build label:"bug fix" 匹配具有标签 "bug fix"、含有 "build" 字样的议题。
某些非字母数字符号(例如空格)
会从引号内的代码
搜索查询中删除,因此结果可能出乎意料。
使用用户名的查询
如果搜索查询包含
需要用户名
的限定符,例如user
、actor
或assignee
,您可以使用任何 GitHub 用户名指定特定人员,或使用@me
指定当前用户。
![](https://static001.geekbang.org/infoq/a4/a45f94be3fe02da26faa884a1f8c40ba.png)
@me 只能与限定符一起使用,而不能用作搜索词,例如 @me main.workflow。
检索-搜索仓库
按仓库名称、说明或自述文件内容搜索
通过
in
限定符,您可以将搜索限制为仓库名称
、仓库说明
、自述文件内容
或这些的任意组合
。 如果省略此限定符,则只搜索仓库名称和说明
。
![](https://static001.geekbang.org/infoq/41/41fe75cc9bf7e191c4125b9d91eebaa9.png)
![](https://static001.geekbang.org/infoq/20/201153518495d1510c53fb916a3d0587.gif)
在用户或组织的仓库内搜索
要在
特定用户
或组织
拥有的所有仓库
中搜索,您可以使用user
或org
限定符。
![](https://static001.geekbang.org/infoq/a3/a37fb412d60ff3b863a7572df770265f.png)
按仓库大小搜索
ize
限定符使用大于、小于和范围限定符
查找匹配特定大小(以千字节
为单位)的仓库。
![](https://static001.geekbang.org/infoq/d6/d694b942c8538f96d83d7f246513ba55.png)
按关注者数量搜索
使用
followers
限定符以及大于、小于和范围限定符
,基于关注仓库
的用户数量
过滤仓库。
![](https://static001.geekbang.org/infoq/fd/fdaf39c6e670f7b91e01131788a0a4fe.png)
![](https://static001.geekbang.org/infoq/9b/9bf4a9daea8ca5e325f1f8aa7ec29d37.gif)
按复刻数量搜索
forks
限定符使用大于、小于和范围限定符
指定仓库应具有的复刻数量
。
![](https://static001.geekbang.org/infoq/ba/bacbe8843570b81fadb548a7a8584c7b.png)
![](https://static001.geekbang.org/infoq/e7/e75ce4322ce1e85b02824df22e4508a3.gif)
按星号数量搜索
可以使用大于、小于和范围限定符,基于仓库的星标数量来搜索仓库。
![](https://static001.geekbang.org/infoq/da/dab59b1967f162a9630a3c34c602b184.png)
![](https://static001.geekbang.org/infoq/38/384d962c81734324def78de69e6207df.gif)
按仓库创建或上次更新时间搜索
可以基于
创建时间
或上次更新时间
过滤仓库。 对于仓库创建
,您可以使用created 限定符
;要了解仓库上次更新
的时间,您要使用pushed
限定符。 pushed 限定符将返回仓库列表,按仓库中任意分支上最近进行的提交排序。 两者均采用日期作为参数
。日期格式必须遵循 ISO8601标准
,即YYYY-MM-DD(年-月-日)
。 您也可以在日期后添加可选的时间信息 THH:MM:SS+00:00
,以便按小时
、分钟
和秒
进行搜索。 这是 T,随后是 HH:MM:SS(时-分-秒)和 UTC 偏移 (+00:00)。
![](https://static001.geekbang.org/infoq/17/17c76398421a84c52864720b76f434a6.png)
按语言搜索
可以根据仓库中代码的语言搜索仓库。
![](https://static001.geekbang.org/infoq/a1/a1c1a51bd869966c40d4def92f173535.png)
![](https://static001.geekbang.org/infoq/74/74db82476bbbc0c2412cc62e63a18572.png)
按主题搜索
可以找到按特定主题分类的所有仓库。
![](https://static001.geekbang.org/infoq/54/5488bf022fdaf596f35aad55bbd7f4cc.png)
按主题数量搜索
可以使用
topics
限定符以及大于、小于和范围限定符,根据应用于仓库的主题数量来搜索仓库。
![](https://static001.geekbang.org/infoq/d1/d197cd229d3e50b832153445ade88185.png)
按许可搜索
可以根据
仓库中许可的类型
搜索仓库。 您必须使用许可关键字
,按特定许可或许可系列来过滤仓库。
![](https://static001.geekbang.org/infoq/e8/e8843b2fa838e4a92dfecfa0368fa589.png)
按仓库可见性搜索
可以根据
仓库的可见性
过滤搜索。
![](https://static001.geekbang.org/infoq/f3/f3b3dff3ad15c822aa14525807fefb75.png)
基于仓库是否为镜像搜索
可以根据
仓库是否为镜像
以及托管于其他位置托管
来搜索仓库。
![](https://static001.geekbang.org/infoq/8b/8b0335451810524e67c5a12e54ab2237.png)
基于仓库是否已存档搜索
可以基于仓库
是否已存档
来搜索仓库。
![](https://static001.geekbang.org/infoq/b8/b80cbf70618ce2b190a1af0d37180130.png)
基于具有 good first issue 或 help wanted 标签的议题数量搜索
可以使用限定符
help-wanted-issues:>n
和good-first-issues:>n
搜索具有最少数量标签
为help-wanted
或good-first-issue
议题的仓库。
![](https://static001.geekbang.org/infoq/6a/6aa7f23f0274de0cb51f9d7845bc65ef.png)
高级检索-搜索用户
按用户拥有的仓库数量搜索
可以使用 repos 限定符以及大于、小于和范围限定符基于用户拥有的仓库数量过滤用户。
![](https://static001.geekbang.org/infoq/42/42c8ea94b260bf95e70fc9d1ab227313.png)
![](https://static001.geekbang.org/infoq/35/35ac230da0dc7c9383d21b52c03d7fe3.png)
按仓库语言搜索
使用
language
限定符,您可以基于用户所拥有仓库的语言搜索用户。
![](https://static001.geekbang.org/infoq/de/de5a53cdeb2a891e3234a5c3d2214af6.png)
按位置搜索
按其
个人资料
中指示的位置
搜索用户。
![](https://static001.geekbang.org/infoq/ab/abea002d2f7b8a612c4840f493af6613.png)
搜索某个地区内,某种语言的大佬
cation:beijing language:java
![](https://static001.geekbang.org/infoq/5b/5b503f91b3dfc288d2350d690b80f2c8.png)
按关注者数量搜索
可以使用
followers
限定符以及大于、小于和范围限定符基于用户拥有的关注者数量
过滤用户。
![](https://static001.geekbang.org/infoq/cf/cffa2f561adb479cb49e8015d1a886a1.png)
![](https://static001.geekbang.org/infoq/83/8360ae676bc477f34b1dcc065762cfb3.png)
高级检索-扩展
awesome 加强搜索
公式:
awesome 关键字
:awesome 系列,一般用来收集学习、工具、书籍类相关的项目
搜索优秀的
redis相关
的项目,包括框架
,教程
等 awesome redis
![](https://static001.geekbang.org/infoq/24/24c889b5895b69335b3766a0ad7b0bee.gif)
高亮显示某行代码
一行:地址后面紧跟 #L10https://github.com/redis/redis/blob/unstable/redis.conf#L12
多行:地址后面紧跟 #Lx - #Lnhttps://github.com/redis/redis/blob/unstable/redis.conf#L12-L45
![](https://static001.geekbang.org/infoq/bc/bc3d710f9b1ae557b220b3db697233fa.gif)
项目内搜索
使用英文字母 t ,开启项目内搜索项目地址:https://github.com/redis/redis,进去之后 按
t
![](https://static001.geekbang.org/infoq/8f/8fef12664d0bf7223fc6100457cbf38f.gif)
这里我再推荐一个很好用的 GitHub chrome 插件:
Octotree
![](https://static001.geekbang.org/infoq/f1/f191c6295653895ec2f0734d839fca3a.gif)
生命不止,学习不息。
结束语
感谢阅读小生文章。祝大家早日富可敌国,实现财富自由。<br>写文不易
,一定要点赞、评论、收藏哦
,感谢感谢感谢!!!
有任何问题可以在微信搜索公众号
:Madison龙少
进行咨询<br>或者微信扫描下面二维码进行咨询<br>
![](https://static001.geekbang.org/infoq/84/845041ded936b6ddecf3c289be5ffc34.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
版权声明: 本文为 InfoQ 作者【小胖说java】的原创文章。
原文链接:【http://xie.infoq.cn/article/af6dd0a5d9e7f48e8e73561bc】。文章转载请联系作者。
评论