1. 前言
GitHub的搜索功能绝不仅仅是单纯匹配你输入的内容,而是有如下匹配规则。
本文参考自GitHub官方文档。
GitHub官方文档:https://docs.github.com/en
本文第3点总结了目前GitHub搜索最常用的技巧,根据我们平时搜索的内容分为了搜索存储库、搜索主题、搜索代码和搜索用户四个小点,你可以根据自己想要的搜索内容定位到每个小点,同时第2点总结了将你搜索到的结果按照什么排序顺序排序,包括交互排序、反应排序、作者日期排序、提交者日期排序、更新日期排序等。
2. 排序搜索结果
2.1. 按交互排序
语法 | 例子 |
---|
org:github sort:interactions | 匹配 GitHub 拥有的存储库中的问题,按反应和评论的最高组合数排序 |
org:github sort:interactions-asc | 匹配 GitHub 拥有的存储库中的问题,按最少的反应和评论组合数排序 |
2.2. 按反应排序
语法 | 例子 |
---|
org:github sort:reactions | 匹配 GitHub 拥有的存储库中的问题,按最高反应数排序。 |
org:github sort:reactions-asc | 匹配 GitHub 拥有的存储库中的问题,按反应数量升序排序(从最少到最多) |
org:github sort:reactions-+1 | 匹配 GitHub 拥有的存储库中的问题,按最多点赞 (👍) 反应排序 |
org:github sort:reactions- -1 | 匹配 GitHub 拥有的存储库中的问题,按最多 (👎) 反应排序 |
org:github sort:reactions-smile | 匹配 GitHub 拥有的存储库中的问题,按最多笑 (😄) 反应排序 |
org:github sort:reactions-tada | 匹配 GitHub 拥有的存储库中的问题,按大多数欢呼 (🎉) 反应排序 |
org:github sort:reactions-heart | 匹配 GitHub 拥有的存储库中的问题,按大多数心脏 (❤️) 反应排序 |
2.3. 按作者日期排序
语法 | 例子 |
---|
org:github sort:author-date feature | 匹配 GitHub 拥有的存储库中包含单词“feature”的提交,按作者日期降序排序 |
org:github sort:author-date-asc feature | 匹配 GitHub 拥有的存储库中包含单词“feature”的提交,按作者日期升序排序 |
2.4. 按提交者日期排序
语法 | 例子 |
---|
org:github sort:committer-date | 匹配 GitHub 拥有的存储库中包含“功能”一词的提交,按提交者日期降序排序 |
org:github sort:committer-date-asc | 匹配 GitHub 拥有的存储库中包含“功能”一词的提交,按提交者日期升序排序 |
2.5. 按更新日期排序
语法 | 例子 |
---|
sort:updated feature | 匹配包含“feature”一词的存储库,按最近更新日期排序 |
sort:updated-asc feature | 匹配包含单词“feature”的存储库,按最近更新日期排序 |
3. 搜索范围
3.1. 搜索存储库
3.1.1. 按存储库名称、描述或 README 文件的内容搜索
语法 | 例子 |
---|
in:name jquery | 匹配存储库名称中带有“jquery”的存储库。 |
in:description jquery | 匹配存储库描述中带有“jquery”的存储库。 |
in:readme jquery | 匹配存储库的 README 文件中提到“jquery”的存储库。 |
3.1.2. 在用户或组织的仓库中搜索
语法 | 例子 |
---|
user:defunkt forks:>100 | 匹配用户名为 defunkt 的具有超过 100 个 fork 的存储库。 |
3.1.3. 按存储库大小搜索
语法 | 例子 |
---|
size:1000 | 匹配大小为 1 MB 的存储库 |
size:>=30000 | 匹配至少 30 MB 的存储库 |
size:<50 | 匹配小于 50 KB 的存储库 |
size:50…120 | 匹配 50 KB 到 120 KB 之间的存储库 |
3.1.4. 按分叉数搜索
语法 | 例子 |
---|
forks:5 | 匹配只有五个 fork 的存储库 |
forks:>=205 | 匹配至少有 205 个 fork 的仓库 |
forks:<90 | 匹配具有少于 90 个 fork 的存储库 |
forks:10…20 | 匹配具有 10 到 20 个 fork 的存储库 |
3.1.5. 按星数搜索
语法 | 例子 |
---|
stars:500 | 匹配恰好有 500 颗星的存储库 |
stars:10…20 | 匹配小于 1000 KB 的 10 到 20 星的存储库 |
stars:>=500 fork:true language:php | 匹配至少 500 个星的存储库,包括分叉的,用 PHP 编写的 |
3.1.6. 按创建或上次更新存储库的时间搜索
语法 | 例子 |
---|
webos created:<2011-01-01 | 匹配 2011 年之前创建的带有“webos”一词的存储库 |
css push:>2013-02-01 | 匹配 2013 年 1 月之后推送到的带有“css”一词的存储库 |
case push:>=2013-03-06 fork:only | 匹配 2013 年 3 月 6 日或之后推送到的带有单词“case”的存储库,并且是分叉。 |
3.1.7. 按语言搜索
语法 | 例子 |
---|
rails language:javascript | 匹配使用 JavaScript 编写的带有“rails”一词的存储库 |
3.1.8. 按主题搜索
语法 | 例子 |
---|
topic:jekyll | 匹配已分类为主题“jekyll”的存储库 |
3.1.9. 按主题数量搜索
语法 | 例子 |
---|
topic:5 | 匹配具有五个主题的存储库 |
topic:> 3 | 匹配具有三个以上主题的存储库 |
3.1.10. 按许可证搜索
语法 | 例子 |
---|
license:apache-2.0 | 匹配在 Apache License 2.0 下获得许可的存储库 |
3.1.11. 按存储库可见性搜索
语法 | 例子 |
---|
is:public org:github | 匹配 GitHub 拥有的公共存储库 |
is:internal test | 匹配您可以访问并包含“test”一词的内部存储库 |
is:private pages | 匹配您可以访问并包含“pages”一词的私有存储库 |
3.1.12. 根据仓库是否是镜像进行搜索
语法 | 例子 |
---|
mirror:true GNOME | 匹配作为镜像且包含单词“GNOME”的存储库 |
mirror:false GNOME | 匹配非镜像且包含“GNOME”一词的存储库 |
3.2. 搜索主题
3.2.1. 使用搜索限定符缩小搜索范围
语法 | 例子 |
---|
is:curated javascript | 匹配经过策划并包含“javascript”一词的主题 |
is:featured javascript | 匹配https://github.com/topics/上的特色主题并包含“javascript”一词 |
is:not-curated javascript | 匹配没有额外信息(例如描述或徽标)并包含“javascript”一词的主题 |
is:not-featured javascript | 匹配https://github.com/topics/上没有特色且包含“javascript”一词的主题 |
repositories:>5000 | 匹配具有超过 5000 个存储库的主题 |
3.3. 搜索代码
序号 | 代码搜索的注意事项:由于搜索代码的复杂性,对搜索的执行方式有一些限制 |
---|
1 | 必须登录 GitHub 上的用户帐户才能在所有公共存储库中搜索代码 |
2 | 只有当分叉的星数多于父存储库时,分叉中的代码才可搜索。星号少于父存储库的分叉不会为代码搜索编制索引。要在搜索结果中包含星数多于父级的分叉,您需要将fork:true或添加fork:only到您的查询中。有关更多信息,请参阅“在分叉中搜索” |
3 | 仅对默认分支进行索引以进行代码搜索 |
4 | 只能搜索小于 384 KB 的文。 |
5 | 只能搜索少于 500,000 个文件的存储库 |
6 | 只有在去年有活动或在搜索结果中返回的存储库才可搜索 |
7 | 除了filename搜索之外,在搜索源代码时,您必须始终包含至少一个搜索词。例如,搜索language:javascript无效,而搜索无效amazing language:javascript |
8 | 搜索结果最多可以显示来自同一个文件的两个片段,但文件中可能会有更多的结果 |
9 | 您不能在搜索查询中使用以下通配符:. , : ; / \ ` ’ " = * ! ? # $ & + ^ |
3.3.1. 按文件内容或文件路径搜索
语法 | 例子 |
---|
octocat in:file | 匹配文件内容中出现“octocat”的代码 |
octocat in:path | 匹配文件路径中出现“octocat”的代码 |
3.3.2. 在用户或组织的仓库中搜索
语法 | 例子 |
---|
user:defunkt extension:rb | 匹配来自@defunkt 的以.rb结尾的代码 |
org:github extension:js | 匹配来自 GitHub 的以.js结尾的代码 |
repo:mozilla/shumway extension:as | 匹配@mozilla 的 shumway 项目中以.as结尾的代码 |
3.3.3. 按语言搜索
语法 | 例子 |
---|
element language:xml size:100 | 匹配带有标记为 XML 且正好有 100 个字节的单词“element”的代码 |
display language:scss | 匹配带有单词“display”的代码,它被标记为 SCSS |
org:mozilla language:markdown | 匹配所有@mozilla 存储库中标记为 Markdown 的代码 |
3.3.4. 按文件大小搜索
总结
三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。
关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。
而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本
《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题
《算法的乐趣》共有23个章节:
- 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
了解详情https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB
07)]
- 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
[外链图片转存中…(img-BQqENxn4-1724177442807)]
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
[外链图片转存中…(img-oZpBhBJl-1724177442807)]
了解详情https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB