在GitHub账号创建文章中详细讲解了如何创建GitHub账号。本文将介绍GitHub常用的搜索技巧。
  原文地址:73个GitHub高级搜索技巧

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. 按文件大小搜索

语法例子
function size:>10000 language:python匹配用 Python 编写的大于 10 KB 的文件中带有“function”一词的代码

3.3.5. 按文件名搜索

语法例子
filename:linguist匹配名为“linguist”的文件
filename:.vimrc commands匹配带有 “commands” 一词的.vimrc文件。

3.4. 搜索用户

3.4.1. 按帐户名称、全名或公共电子邮件搜索

语法例子
user:octocat匹配用户名为“octocat”的用户
org:electron type:users匹配 Electron 组织的账户名
kenya in:login匹配用户名中包含“kenya”一词的用户
bolton in:name匹配真实姓名中包含单词“bolton”的用户
fullname:Nat Friedman匹配全名“Nat Friedman”的用户。注意:此搜索限定符对间距敏感。
data in:email将用户与电子邮件中的“data”一词匹配起来

3.4.2. 按用户拥有的仓库数量搜索

语法例子
repos:>9000匹配存储库数量超过 9,000 的用户
bert repos:10…30匹配用户名或真实姓名中包含“bert”一词且拥有 10 到 30 个存储库的用户

3.4.3. 按创建用户帐户的时间搜索

语法例子
created:<2011-01-01匹配 2011 年之前加入的用户
created:>=2013-05-11匹配在 2013 年 5 月 11 日或之后加入的用户
created:2013-03-06 location:london匹配于 2013 年 3 月 6 日加入且将其位置列为伦敦的用户
created:2010-01-01…2011-01-01 john in:login匹配在 2010 年到 2011 年之间加入且用户名中包含单词“john”的用户

3.4.4. 按关注者数量搜索

语法例子
followers:>=1000匹配拥有 1,000 或更多关注者的用户
sparkle follower:1…10匹配拥有 1 到 10 个关注者的用户,他们的名字中带有“sparkle”这个词
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐