关于github:身为程序员-你真的会使用github搜索吗

2次阅读

共计 6637 个字符,预计需要花费 17 分钟才能阅读完成。

身为程序员 你真的会应用 github 搜寻吗?

前言

github作为寰球最大的开源软件我的项目托管平台,我置信不少程序员都在应用。然而你真的会应用 github 的搜寻性能 吗?

 咱们常常会在 GitHub 上搜寻 代码、我的项目、用户或查找相干主题 ,最简略罕用的办法是在GitHub 主页搜寻框中 间接输出 相干信息进行查找 ,比方咱们要搜寻spring-boot 相干我的项目如下图所示:

那如何能精准定位到咱们须要找的 代码、我的项目、用户或查找相干主题 呢?本文就具体来讲一下在GitHub 上如何精准搜寻的奇妙技巧

搜寻语法篇

常用词含意

  • watch:会继续收到该项目标动静
  • fork:复制某个仓库到本人的 Github 仓库中
  • star:能够了解为点赞
  • clone:将我的项目下载至本地
  • follow:关注你感兴趣的作者,会收到他们的动静

搜寻 GitHub 时,能够构建匹配特定数字和单词的查问。

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

能够应用 >、>=、< 和 <= 搜寻大于、大于等于、小于以及小于等于另一个值的值。

查问 示例
>n spring-boot stars:>2000 匹配含有 “spring-boot” 字样、星标超过 1000 个的仓库。
>=n spring-boot topics:>=5 匹配含有 “spring-boot” 字样、有 5 个或更多主题的仓库。
<n spring-boot size:<10000 匹配小于 10 KB 的文件中含有 “spring-boot” 字样的代码。
<=n spring-boot stars:<=50 匹配含有 “spring-boot” 字样、星标不超过 50 个的仓库。

<img src = “https://media.giphy.com/media/ZgthKMd4r4B8wxYgPW/source.gif”>

还能够应用范畴查问搜寻大于等于或小于等于另一个值的值。

查问 示例
n..* spring-boot stars:5000..* 等同于 stars:>=5000 并匹配含有 “spring-boot” 字样、有 5000 个或更多星号的仓库。
*..n spring-boot stars:*..20 等同于 stars:<=20 并匹配含有 “spring-boot” 字样、有不超过 20 个星号的仓库。

查问范畴之间的值

能够应用范畴语法 n..n 搜寻范畴内的值,其中第一个数字 n 是最低值,而第二个是最高值。

查问 示例
n..n spring-boot stars:4000..5000 匹配含有 “spring-boot” 字样、有 4000 到 5000 个星号的仓库

查问日期

能够通过应用 >、>=、<、<= 和范畴查问搜寻早于或晚于另一个日期,或者位于日期范畴内的日期。日期格局必须遵循 ISO8601 规范,即 YYYY-MM-DD(年 - 月 - 日)。

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

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

查问 示例
YYYY-MM-DDTHH:MM:SS+00:00 spring-boot 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-DDTHH:MM:SSZ spring-boot 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 spring-boot stars:>1000 -language:kotlin 匹配含有 “spring-boot” 字样、有超过 1000 个星号但并非以 kotlin 编写的仓库。
mentions:defunkt -org:github 匹配提及 @defunkt 且不在 GitHub 组织仓库中的议题

对带有空格的查问应用引号

如果搜寻含 有空格 的查问,您须要用 引号将其括起来

  • spring-boot NOT “hello world” 匹配含有 “spring-boot” 字样但不含有 “hello world” 字样的仓库。
  • build label:”bug fix” 匹配具备标签 “bug fix”、含有 “build” 字样的议题。

某些 非字母数字符号(例如空格)会从 引号内的代码 搜寻查问中删除,因而后果可能出其不意。

应用用户名的查问

如果搜寻查问蕴含 须要用户名 的限定符,例如 useractorassignee,您能够应用任何 GitHub 用户名指定特定人员,或应用 @me 指定以后用户。

查问 示例
QUALIFIER:USERNAME author:nat 匹配 @nat 创作的提交。
QUALIFIER:@me is:issue assignee:@me 匹配已调配给后果查看者的议题

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

高级检索 - 搜寻仓库

按仓库名称、阐明或自述文件内容搜寻

通过 in 限定符,您能够将搜寻限度为 仓库名称 仓库阐明 自述文件内容 或这些的 任意组合 。如果省略此限定符,则只搜寻 仓库名称和阐明

限定符 示例
in:name seckill in:name 匹配仓库名称中含有 “seckill” 的仓库。
in:description seckill in:name,description 匹配仓库名称或阐明中含有 “seckill” 的仓库
in:readme seckill in:readme 匹配仓库自述文件中提及 “seckill” 的仓库。
repo:owner/name repo:codingXiaxw/seckill 匹配特定仓库名称。

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

要在 特定用户 组织 领有的 所有仓库 中搜寻,您能够应用 userorg 限定符。

限定符 示例
user:USERNAME user:defunkt forks:>100 匹配来自 @defunkt、领有超过 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 之间的仓库。

按关注者数量搜寻

能够应用 followers 限定符以及 大于、小于和范畴限定符 ,基于 关注仓库 用户数量 过滤仓
库。

限定符 示例
followers:n spring-boot followers:>=10000 匹配有 10000 或更多关注者提及文字 “spring-boot” 的仓库。
spring followers:1..10 匹配领有 1 到 10 个关注者并且提及 “spring” 一词的的仓库。

按复刻数量搜寻

forks 限定符应用 大于、小于和范畴限定符 指定仓库应具备的 复刻数量
| 限定符 | 示例 |

forks:n forks:5 匹配只有 5 个复刻的仓库。
forks:>=205 匹配具备至多 205 个复刻的仓库。
forks:<90 匹配具备少于 90 个复刻的仓库。
forks:10..20 匹配具备 10 到 20 个复刻的仓库。

按星号数量搜寻

能够应用大于、小于和范畴限定符,基于仓库的星标数量来搜寻仓库。

限定符 示例
stars:n stars:500 匹配恰好具备 500 个星号的仓库。
stars:10..20 匹配具备 10 到 20 个星号、小于 1000 KB 的仓库。
stars:>=500 fork:true language:php 匹配具备至多 500 个星号,包含复刻的星号(以 PHP 编写)的仓库。

按仓库创立或上次更新工夫搜寻

 能够基于 创立工夫 上次更新工夫 过滤仓库。对于 仓库创立 ,您能够应用 created 限定符;要理解 仓库上次更新 的工夫,您要应用 pushed 限定符。pushed 限定符将返回仓库列表,按仓库中任意分支上最近进行的提交排序。
 两者均采纳 日期作为参数 日期格局必须遵循 ISO8601 规范 ,即 YYYY-MM-DD(年 - 月 - 日)。您也能够在日期后增加可选的 工夫信息 THH:MM:SS+00:00,以便按 小时 分钟 进行搜寻。这是 T,随后是 HH:MM:SS(时 - 分 - 秒)和 UTC 偏移 (+00:00)。

限定符 示例
created:YYYY-MM-DD webos created:<2011-01-01 匹配具备 “webos” 字样、在 2011 年之前创立的仓库。
pushed:YYYY-MM-DD css pushed:>2013-02-01 匹配具备 “css” 字样、在 2013 年 1 月之后收到推送的仓库。
case pushed:>=2013-03-06 fork:only 匹配具备 “case” 字样、在 2013 年 3 月 6 日或之后收到推送并且作为复刻的仓库。

按语言搜寻

能够依据仓库中代码的语言搜寻仓库。

限定符 示例
language:LANGUAGE rails language:javascript 匹配具备 “rails” 字样、以 JavaScript 编写的仓库。

按主题搜寻

能够找到按特定主题分类的所有仓库。
| 限定符 | 示例 |

topic:TOPIC topic:jekyll 匹配已归类为 “jekyll” 主题的仓库。

按主题数量搜寻

能够应用 topics 限定符以及大于、小于和范畴限定符,依据利用于仓库的主题数量来搜寻仓库。

限定符 示例
topics:n topics:5 匹配具备五个主题的仓库。
topics:>3 匹配超过三个主题的仓库。

按许可搜寻

能够依据 仓库中许可的类型 搜寻仓库。您必须应用 许可关键字,按特定许可或者可系列来过滤仓库。

限定符 示例
license:LICENSE_KEYWORD license:apache-2.0 匹配依据 Apache License 2.0 受权的仓库

按仓库可见性搜寻

能够依据 仓库的可见性 过滤搜寻。

限定符 示例
is:public is:public org:github 匹配 GitHub 领有的公共仓库。
is:internal is:internal test 匹配您能够拜访并且蕴含单词 “test” 的外部仓库。
is:private is:private pages 匹配您能够拜访并且蕴含单词 “pages” 的公有仓库。

基于仓库是否为镜像搜寻

能够依据 仓库是否为镜像 以及 托管于其余地位托管 来搜寻仓库。

限定符 示例
mirror:true mirror:true GNOME 匹配是镜像且蕴含 “GNOME” 字样的仓库。
mirror:false mirror:false GNOME 匹配并非镜像且蕴含 “GNOME” 字样的仓库。

基于仓库是否已存档搜寻

能够基于仓库 是否已存档 来搜寻仓库。

限定符 示例
archived:true archived:true GNOME 匹配已存档且蕴含 “GNOME” 字样的仓库。
archived:false archived:false GNOME 匹配未存档且蕴含 “GNOME” 字样的仓库。

基于具备 good first issue 或 help wanted 标签的议题数量搜寻

能够应用限定符 help-wanted-issues:>ngood-first-issues:>n 搜寻具备 起码数量标签 help-wanted good-first-issue 议题的仓库。

限定符 示例
good-first-issues:>n good-first-issues:>2 javascript 匹配具备超过两个标签为 good-first-issue 的议题且蕴含 “javascript” 字样的仓库。
help-wanted-issues:>n help-wanted-issues:>4 react 匹配具备超过四个标签为 help-wanted 的议题且蕴含 “React” 字样的仓库。

高级检索 - 搜寻用户

按用户领有的仓库数量搜寻

能够应用 repos 限定符以及大于、小于和范畴限定符基于用户领有的仓库数量过滤用户。

限定符 示例
repos:n repos:>9000 匹配其仓库数超过 9,000 的用户。
bert repos:10..30 匹配领有 10 到 30 个仓库、其用户名或实在姓名含有 “bert” 字样的用户。

按仓库语言搜寻

应用 language 限定符,您能够基于用户所领有仓库的语言搜寻用户。

限定符 示例
language:LANGUAGE location:beijing language:java 匹配恰好有一个仓库位于北京的 java 语言用户。

按地位搜寻

能够按其 个人资料 中批示的 地位 搜寻用户。

限定符 示例
location:LOCATION location:beijing language:java 匹配恰好有一个仓库位于北京的 java 语言用户。

搜寻某个地区内, 某种语言的大佬

location:beijing language:java

按关注者数量搜寻

能够应用 followers 限定符以及大于、小于和范畴限定符 基于用户领有的关注者数量 过滤用户。

限定符 示例
followers:n followers:>=1000 匹配有 1,000 个或更多关注者的用户。
sparkle followers:1..10 匹配具备 1 到 10 个关注者、其名称中含有 “sparkle” 字样的用户。

高级检索 - 扩大

awesome 增强搜寻

  • 公式:awesome 关键字 :awesome 系列,个别用来 收集学习、工具、书籍类相干的我的项目
  • 搜寻优良的 redis 相干 的我的项目,包含 框架 教程 等 awesome redis

高亮显示某行代码

  • 一行:地址前面紧跟 #L10
    https://github.com/redis/redi…
  • 多行:地址前面紧跟 #Lx – #Ln
    https://github.com/redis/redi…

我的项目内搜寻

应用英文字母 t , 开启我的项目内搜寻
我的项目地址:https://github.com/redis/redi… 按t

这里我再举荐一个很好用的 GitHub chrome 插件: Octotree

生命不止,学习不息。

GitHub 官网文档

结束语

感激浏览小生文章。祝大家早日富可敌国,实现财产自在。

写文不易 , 肯定要 点赞、评论、珍藏哦 , 感激感激感激!!!

有任何问题能够在微信搜寻 公众号 Madison 龙少 进行征询

或者微信扫描上面二维码进行征询

正文完
 0