众所周知,GitHub是一个开源项目托管平台,为我们提供了许多工作和学习上的方便,GitHub上面的开源项目、学习资源超级多。但是经常面对这么多的仓库,如果直接输入关键词(比如C语言C++)搜索,会得到很多不同的结果,筛选结果的时候又会浪费大量的时间;

本文章的目标

1.更精准的搜索技巧;
2.减少花在寻找资料上的时间;
3.提高学习工作效率;

注意事项:

1.符号要用英文的;
2.如果同时使用多个搜索条件,条件之间要用空格分开;


关于github搜索技巧的目录

  • 一、 仓库搜索
  • 1.1 仓库创建或上次更新时间
  • 1.1.1 根据仓库创建时间
  • 1.1.2 根据仓库上传更新时间
  • 1.2 仓库名称或自述文件(README)
  • 1.3 仓库星标数量
  • 二、 主题搜索
  • 三、 代码搜索
  • 3.1 根据文件内容或路径
  • 3.2 根据文件位置
  • 3.3 根据文件名
  • 四、 搜索开发者
  • 五、 GitHub的分区
  • 5.1 GitHub Trend
  • 5.2 Github Topics
  • 5.3 Github Explore


一、 仓库搜索

简介:通过仓库搜索限定符来缩小搜索范围,从而节省时间;

1.1 仓库创建或上次更新时间

根据仓库创建的时间或仓库上传更新的时间过滤掉不符合条件的仓库。这两个搜索都是用日期作为参数,日期格式必须是YYYY-MM-DD,代表年月日(遵循ISO8601标准,日期时间的表示方法);

1.1.1 根据仓库创建时间

使用 created 限定符搜索;
限定符:created:YYYY-MM-DD
举例:C++ created:<2021-03-22
意思:搜索2021年3月22日之前创建、具有“C++”字样的仓库;

1.1.2 根据仓库上传更新时间

使用 pushed 限定符搜索;
限定符:pushed:YYYY-MM-DD
举例: C++ pushed:>2021-03-22  
意思:搜索2020年3月22日之后更新(即收到推送)、具有“C++”字样的仓库;          
举例:C++ pushed:>2021-03-22 fork:only  
意思:搜索具有“C++”字样、在2021年3月22日之后更新,并且是复制的仓库;

1.2 仓库名称或自述文件(README)

使用 in 限定符搜索;
通过in限定符,将搜索限制为根据仓库创建时间、仓库名称、仓库星标数等条件搜索(或这些条件的任意组合)。如果不用in限定符,则只是搜索仓库名称和仓库说明;

限定符 :in:name
举例:C++ in:name    
意思:搜索名称中有“C++”字样的仓库;

限定符 :in:description  或in:about
举例:in:description C++   
意思:搜索简介有“C++”字样的仓库;

限定符 :in:name,description
举例:C++ in:name,description  
意思:搜索名称或说明中有“C++”字样的仓库;

限定符 :in:readme
举例:C++ in:readme    
意思:搜索自述文件中提及“C++”的仓库;

限定符 :repo:owner/name
举例:repo:A/C++   
意思:搜索A的C++仓库(搜索特定仓库名称);
上面以A的C++仓库为例;

1.3 仓库星标数量

使用 stars 限定符搜索;
根据仓库星标数量进行大于、小于或范围限定搜索;

限定符:stars:n
举例:stars:99   
意思:搜索刚好99星标的仓库;

限定符:stars:n…m
举例:stars:9…19   
意思:搜索星标数是10到20的仓库;

限定符:stars:>=n fork:true language:m
举例:stars:>=100 fork:true language:C++   
意思:搜索大于或等于100星标(包括分叉的星标),以C++编写的仓库;

二、 主题搜索

简介:通过特定主题来搜索相关仓库;
使用 is:featured 、is:curated 、 repositories:n 限定符搜索;

限定符:is:featured
举例:is:featured C++   
意思:搜索https://github.com/topics上提供,并且含有"C++"字样的主题;

限定符:is:not-featured
举例:is:not-featured C++   
意思:搜索https://github.com/topics上未提供,并且含有“C++”字样的主题;

限定符:is:curated
举例:is:curated C++   
意思:搜索精选项目中含有“C++”字样的主题;

限定符:is:not-curated
举例:is:not-curated C++   
意思:搜索没有额外说明且含有“C++”字样的主题;

限定符:repositories:n
举例:repositories:>99   
意思:搜索超过99个仓库的主题;

限定符:created:YYYY-MM-DD
举例:C++ created:>2020-06-08   
意思:搜索于2020年6月8日之后创建、含有“C++”字样的主题;

三、 代码搜索

简介:通过全局搜索代码,或在特定仓库内搜索代码;

3.1 根据文件内容或路径

使用 in 限定符搜索;
使用in限定符,根据文件内容、文件路径来搜索,或满足这两个条件其中之一的条件搜索。如果不使用in限定符,则只是搜索文件内容;

限定符:in:file
举例:demo in:file   
意思:搜索文件内容中出现“demo”的代码;

限定符:in:path
举例:demo in:path   
意思:搜索文件路径中出现“demo”的代码;

限定符:in:file,path
举例:demo in:file,path  
意思:搜索文件内容或文件路径中出现“demo”的代码;

3.2 根据文件位置

使用 path 限定符搜索。
使用path限定符搜索仓库中特定位置显示的代码。使用path:/限定符搜索位于仓库根目录级别的文件。可以指定目录名称或路径搜索该目录及其子目录中的文件。

限定符:path:/
举例:C++ filename:readme path:/   
意思:搜索位于仓库根目录级别、含有“C++”字样的readme文件。

限定符:path:DIRECTORY
举例:test path:demo language:C++   
意思:搜索demo目录及其子目录中含有“test”字样的C++文件。

限定符:path:PATH/TO/DIRECTORY
举例:test path:bad/written language:C++   
意思:搜索bad/wirtten目录及其子目录中含有“test”字样的C++文件。

3.3 根据文件名

使用 filename 限定符搜索。
使用filename限定符根据文件名搜索代码文件。

限定符:filename:FILENAME
举例:filename:demo   
意思:搜索名为“demo”的文件。

限定符:filename:FORMAT
举例:filename:.txt demo   
意思:搜索具有“demo”字样的.txt文件。

四、 搜索开发者

简介:根据作者搜索相关项目。

使用 location 、 language 、 followers 、 fullname 参数搜索。

条件: location:LOCATION
举例:location:china   
意思:搜索填写的地址是在china的开发者。

条件: language:LANGUAGE
举例:language:C++   
意思:搜索开发语言为C++的开发者。

条件: followers:FOLLOWERS
举例:followers:>=99   
意思:搜索拥有超过99关注者的开发者。

条件: in:fullname
举例:XYB in:fullname   
意思:搜索用户实名为XYB的开发者。

五、 GitHub的分区

5.1 GitHub Trend

这个是GitHub的趋势榜,宣传语是看看GitHub今天最激动的是什么。
在这里有多个查找项目的方式,可以选择编程语言,也可以选择月榜、周榜、日榜。还可以选择开发者,查看开发者的优质项目。

点击此处进入地址

5.2 Github Topics

Github Topics展示了最新、最热门的讨论主题,宣传语是浏览GitHub上的热门话题。
在这里不仅可以看到开源项目,还可以看到一些非开发技术的讨论主题。

点击此处进入地址

5.3 Github Explore

Github Explore这里是根据你平时的兴趣,推荐项目。

点击此处进入地址