恕我直言,你可能连 GitHub 搜索都不会用 - 如何精准搜索的神仙技巧(上)

简介: 恕我直言,你可能连 GitHub 搜索都不会用 - 如何精准搜索的神仙技巧(上)

普通的搜索


相信一般人搜索项目时,都是直接搜索技术栈相关的项目。


高级一点的搜索,会根据 最匹配、最多 Star 来进行排序、选择相应的语言、选择仓库或者代码来进行筛选。


微信图片_20220513101423.png


但是 GitHub 的搜索功能只支持以上这些而已吗 ?


No!


如果你只会用以上的功能,那你知道的仅仅是 GitHub 搜索的冰山一角!


GitHub 的搜索是非常强大的!下面介绍更高级的搜索技巧。


搜索语法


搜索 GitHub 时,你可以构建匹配特定数字和单词的查询。


查询大于或小于另一个值的值


您可以使用 >>=<<= 搜索大于、大于等于、小于以及小于等于另一个值的值。


查询 示例
>*n* cats vue:>1000 匹配含有 "vue" 字样、星标超过 1000 个的仓库。
>=*n* vue topics:>=5 匹配含有 "vue" 字样、有 5 个或更多主题的仓库。
<*n* vue size:<10000 匹配小于 10 KB 的文件中含有 "vue" 字样的代码。
<=*n* vue stars:<=50 匹配含有 "vue" 字样、星标不超过 50 个的仓库。


您还可以使用 范围查询 搜索大于等于或小于等于另一个值的值。


查询 示例
*n*..* vue stars:10..* 等同于 stars:>=10 并匹配含有 "vue" 字样、有 10 个或更多星号的仓库。
*..*n* vue stars:*..10 等同于 stars:<=10 并匹配含有 "vue" 字样、有不超过 10 个星号的仓库。


查询范围之间的值


您可以使用范围语法 *n*..*n* 搜索范围内的值,其中第一个数字 n 是最低值,而第二个是最高值。


查询 示例
*n*..*n* vue stars:10..50 匹配含有 "vue" 字样、有 10 到 50 个星号的仓库。

查询日期


您可以通过使用 >>=<<= 和 范围查询 搜索早于或晚于另一个日期,或者位于日期范围内的日期。


日期格式必须遵循 ISO8601 标准,即 YYYY-MM-DD(年-月-日)。


查询 示例
>*YYYY*-*MM*-*DD* vue created:>2016-04-29 匹配含有 "vue" 字样、在 2016 年 4 月 29 日之后创建的议题。
>=*YYYY*-*MM*-*DD* vue created:>=2017-04-01 匹配含有 "vue" 字样、在 2017 年 4 月 1 日或之后创建的议题。
<*YYYY*-*MM*-*DD* vue pushed:<2012-07-05 匹配在 2012 年 7 月 5 日之前推送的仓库中含有 "vue" 字样的代码。
<=*YYYY*-*MM*-*DD* vue created:<=2012-07-04 匹配含有 "vue" 字样、在 2012 年 7 月 4 日或之前创建的议题。
*YYYY*-*MM*-*DD*..*YYYY*-*MM*-*DD* vue pushed:2016-04-30..2016-07-04 匹配含有 "vue" 字样、在 2016 年 4 月末到 7 月之间推送的仓库。
*YYYY*-*MM*-*DD*..* vue created:2012-04-30..* 匹配在 2012 年 4 月 30 日之后创建、含有 "vue" 字样的议题。
*..*YYYY*-*MM*-*DD* vue created:*..2012-04-30 匹配在 2012 年 7 月 4 日之前创建、含有 "vue" 字样的议题。


您也可以在日期后添加可选的时间信息 THH:MM:SS+00:00,以便按小时、分钟和秒进行搜索。 这是 T,随后是 HH:MM:SS(时-分-秒)和 UTC 偏移 (+00:00)。


查询 示例
*YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*+*00*:*00* vue created:2017-01-01T01:00:00+07:00..2017-03-01T15:30:15+07:00 匹配在 2017 年 1 月 1 日凌晨 1 点(UTC 偏移为 07:00)与 2017 年 3 月 1 日下午 3 点(UTC 偏移为 07:00)之间创建的议题。 UTC 偏移量 07:00,2017 年 3 月 1 日下午 3 点。 UTC 偏移量 07:00
*YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z vue created:2016-03-21T14:11:00Z..2016-04-07T20:45:00Z 匹配在 2016 年 3 月 21 日下午 2:11 与 2016 年 4 月 7 日晚上 8:45 之间创建的议题。


排除特定结果


您可以使用 NOT 语法排除包含特定字词的结果。 NOT 运算符只能用于字符串关键词, 不适用于数字或日期。


查询 示例
NOT hello NOT world 匹配含有 "hello" 字样但不含有 "world" 字样的仓库。


缩小搜索结果范围的另一种途径是排除特定的子集。 您可以为任何搜索限定符添加 - 前缀,以排除该限定符匹配的所有结果。


查询 示例
-*QUALIFIER* vue stars:>10 -language:javascript 匹配含有 "vue" 字样、有超过 10 个星号但并非以 JavaScript 编写的仓库。
mentions:biaochenxuying -org:github 匹配提及 @biaochenxuying 且不在 GitHub 组织仓库中的议题


对带有空格的查询使用引号

如果搜索含有空格的查询,您需要用引号将其括起来。 例如:



某些非字母数字符号(例如空格)会从引号内的代码搜索查询中删除,因此结果可能出乎意料。


使用用户名的查询


如果搜索查询包含需要用户名的限定符,例如 useractorassignee,您可以使用任何 GitHub 用户名指定特定人员,或使用 @me 指定当前用户。


查询 示例
QUALIFIER:USERNAME author:biaochenxuying 匹配 @biaochenxuying 创作的提交。
QUALIFIER:@me is:issue assignee:@me 匹配已分配给结果查看者的议题


@me 只能与限定符一起使用,而不能用作搜索词,例如 @me main.workflow


高级的搜索


按仓库名称、说明或自述文件内容搜索


通过 in 限定符,您可以将搜索限制为仓库名称、仓库说明、自述文件内容或这些的任意组合。


如果省略此限定符,则只搜索仓库名称和说明。


限定符 示例
in:name vue in:name 匹配其名称中含有 "jquery" 的仓库。
in:description vue in:name,description 匹配其名称或说明中含有 "vue" 的仓库。
in:readme vue in:readme 匹配其自述文件中提及 "vue" 的仓库。
repo:owner/name repo:biaochenxuying/blog 匹配特定仓库名称,比如:用户为 biaochenxuying 的 blog 项目。


微信图片_20220513101613.png


在用户或组织的仓库内搜索


要在 特定用户或组织 拥有的所有仓库中搜索,您可以使用 userorg 限定符。


限定符 示例
user:*USERNAME* user:biaochenxuying forks:>=100 匹配来自 @biaochenxuying、拥有超过 100 复刻的仓库。
org:*ORGNAME* org:github 匹配来自 GitHub 的仓库。


按仓库大小搜索


size 限定符使用 大于、小于和范围限定符 查找匹配特定大小(以千字节为单位)的仓库。


限定符 示例
size:*n* size:1000 匹配恰好为 1 MB 的仓库。
size:>=30000 匹配至少为 30 MB 的仓库。
size:<50 匹配小于 50 KB 的仓库。
size:50..120 匹配介于 50 KB 与 120 KB 之间的仓库。


微信图片_20220513101642.png


按关注者数量搜索


您可以使用 followers 限定符以及大于、小于和范围限定符基于仓库拥有的关注者数量过滤仓库。


限定符 示例
followers:*n* node followers:>=10000 匹配有 10,000 或更多关注者提及文字 "node" 的仓库。
styleguide linter followers:1..10 匹配拥有 1 到 10 个关注者并且提及 "styleguide linter" 一词的的仓库。


微信图片_20220513101701.png


微信图片_20220513101705.png

相关文章
|
6月前
|
Java Spring
GitHub 上搜索开源项目技巧
GitHub 上搜索开源项目技巧
82 0
|
6月前
|
缓存 网络协议 Linux
百度搜索:蓝易云【解决github push/pull报错443】
通过以上方法,你有望解决GitHub push/pull报错443的问题。如果问题仍然存在,建议检查GitHub的状态页面,看是否有正在维护或故障的情况。
136 3
|
6月前
|
安全 网络安全 开发工具
百度搜索:蓝易云【git无法使用git协议clone github仓库问题解决方法】
通过尝试以上解决方法,你应该能够解决无法使用Git协议克隆GitHub仓库的问题。选择适合你网络环境和要求的方法,并根据需要进行相应的配置。
260 2
|
30天前
|
JSON JavaScript 前端开发
《进阶篇第7章》学习vue中的ajax之后,练习vue案例-github用户搜索案例
《进阶篇第7章》学习vue中的ajax之后,练习vue案例-github用户搜索案例
15 0
|
6月前
|
存储 JavaScript 前端开发
信息收集 -- GitHub搜索技巧(GitMiner)
信息收集 -- GitHub搜索技巧(GitMiner)
77 0
|
6月前
|
存储 搜索推荐 Java
开发者热议GitHub代码搜索政策,最佳搜索解决方案探索
近日,名为koepnick 的开发者因在一台老式电脑上使用GitHub 搜索自己的存储库代码,却没有手机等设备协助验证,导致无法登录GitHub 账户,发文怒斥GitHub:如若没有登录,就无法使用搜索代码服务,与其这样不如弃用。 其实,早在今年6月,GitHub 官方便发布了一封《代码搜索现在需要登录》的公告内容,官宣除了在 GitHub.com 上全局搜索代码已经需要用户登录的政策之后,自 6 月 7 日起,这一政策将其扩展为包括存储库范围的搜索。即要访问 GitHub 的新代码搜索和代码导航的全部功能,需要创建账户或登录 GitHub.com。
|
6月前
|
定位技术
github高级搜索技巧
github高级搜索技巧
71 0
|
缓存 Ubuntu 网络协议
百度搜索:蓝易云【ubuntu 系统解决GitHub无法访问问题】
如果上述步骤仍然无法解决GitHub无法访问的问题,可能是由于其他网络配置或设置问题引起的。您可以尝试咨询网络管理员或检查其他网络设置来进一步排除问题。
152 0
|
消息中间件 存储 分布式计算
GitHub标星150K的神仙笔记,3个月肝完成功面进美团定级3-2
楼主14年小本毕业。离职也有一段时间了,因为一些原因,休整了一段时间。然后3月初开始准备面试(在上家公司工作之余心里一直有着进大厂的执念)。上家公司是智能家居互联网行业的,使用的技术框架有dubbo、zookeeper、mybatis、springMVC、redis等,数据库是用的mysql。我们主要是java后端开发的,感觉上家公司没啥发展前景了就想着在金三银四之际把握机会。但是自身的知识范围不是很广泛,在数据库原理性的知识和sql语句(比如存储过程、触发器)、并发框架dubbo原理性的东西、各个流行框架原理性的东西都比较薄弱和网络编程这块完全抓瞎,主要平时太关注业务了,没有去及时充充电。在
|
设计模式 Kubernetes 架构师
Github上星标55.9k的微服务神仙笔记真的太香了
微服务,是著名的00 ( 面向对象,Object Oriented) 专家Martin Fowler 提出来的,它是用来描述将软件应用程序设计为独立部署的服务的一种特殊方式。最近两年,微服务在各大技术会议、文章、书籍上出现的频率已经让人们意识到它对于软件领域所带来的影响力。