【如何在 GitHub上面找项目】【转载】

很多的小伙伴,经常会有这样的困惑,我看了很多技术的学习文档、书籍、甚至视频,我想动手实践,于是我打开了GitHub,想找个开源项目,进行学习,获取项目实战经验。这个时候很多小伙伴就会面临这样的问题:“我不会搜啊,我该怎么找呀?”,最终只能放弃。

这篇文章教你精准地在GitHub搜索项目。

开源项目的组成部分

在讲清楚之前呢,我们先来了解一下一个开源项目有哪些组成部分:

  • name: 项目名

  • description: 项目的简要描述

  • 项目的源码

  • README.md: 项目的详细情况的介绍

那么除了这些要素之外,项目本身的star数和fork数,也是评判一个开源项目是否火热的标准,这同时也是一个很重要的搜索标准。另外我们也要注意观察这个项目的最近更新日期,因为项目越活跃,那么它的更新日期也更加频繁。

以上要素就是我们在进行搜索的时候要注意的一些关键点。

如何搜索

那我们到底如何搜索呢?

假设我们现在要搜索React,相信大部分小伙伴都是直接在搜索框里输入:“React”,然后一回车,你就会发现情况像下面这样:

搜索结果会显示非常多的开源项目,简直让你应接不暇,无从下手,很多小伙伴搜到这一步就放弃了,因为项目太多了,根本找不到如何找到自己感兴趣的开源项目,所以这样搜索非常的不准确。所以我们来学习一下稍微精确一点的搜索方法。

按照 name 搜索

搜索项目名里面包含React的项目:

in:name React

得到如下结果:

可以看到,这些搜索结果都是项目名里面带有“React”关键字的项目,但是项目数量依旧很多。

现在我们来约束一下

比如我再精确到项目的star数大于5000+:

in:name React stars:>5000

结果是这样的:

搜索结果瞬间精确了很多,现在只有114个项目可供选择。当然我们一般不会把star数设置得这么高,一般设置个1000就差不多了。

同理,我们也可以按照fork的数量来进行搜索:

in:name React stars:>5000 forks:>3000

你会发现,结果越来越精确!

按照README来搜索

搜索README.md里面包含React的项目:

 in:readme React

结果有这么多,那么我们再限制一下它的star数和fork数:

in:readme React stars:>3000 forks:>3000

搜索结果一下子精确到了90个。这个时候你再去选择项目,就会变得容易很多。

按照descriptin搜索

假设我们现在要学习微服务的项目,我们搜索项目描述(description)里面包含微服务的项目:

in:description 微服务

结果有这么多,那我们接着增加一些筛选条件:

in:description 微服务 language:python 

language:python的意思是我们把语言限制为python,我们来看看结果如何:

搜索结果精确了很多。

假如在这些项目里面,我们想要找到最近才更新的项目,意思是更新时间就在最近,我们可以这样:

in:description 微服务 language:python pushed:>2020-01-01

pushed:>2020-01-01的意思是我们把项目的最后更新时间限制到2020-01-01,我们来看看结果如何:

搜索结果只有8个了,这几个项目就属于更新比较活跃的项目,这下再也不纠结了。

在 GitHub 上查找文件

可以使用文件查找器在仓库中搜索文件。 若要在 GitHub 上搜索多个存储库中的文件,请使用 path 代码搜索限定符。

提示:

默认情况下,文件查找器结果将排除某些目录,例如 build、log、tmp 和 vendor。 若要搜索这些目录中的文件,请使用 path 代码搜索限定符。或者,可以使用 .gitattributes 文件自定义默认排除的目录。
按键盘上的 t 键也可以打开文件查找器。 有关详细信息,请参阅“键盘快捷方式”。

使用文件查找器 

  1. 在 GitHub.com 上,导航到存储库的主页。
  2. 在“转到文件”搜索栏中,键入要查找的文件或目录的名称。
    存储库的主视图的屏幕截图。 标记为“转到文件”的搜索栏以深橙色标出。
  3. 或者,如果没有“转到文件”搜索栏,请单击“转到文件”,然后键入要查找的文件或目录的名称。

    存储库的主视图的屏幕截图。 “转到文件”按钮以深橙色框出。

  4. 在结果列表中,单击要查找的文件或目录。 在每个搜索结果下方可以查看目录或文件的文件路径。

自定义排除的文件
默认情况下,如果文件查找器结果存在于存储库根路径中,则结果不会包含以下目录中的文件:

.git
.hg
.sass-cache
.svn
build
dot_git
log
tmp
vendor

可以使用 .gitattributes 文件替代这些默认排除项。

为此,请在存储库根路径中创建或更新名为 .gitattributes 的文件,将应包含在文件查找器结果中的每个目录的 linguist-generated 属性设置为 false。

例如,以下 .gitattributes 文件会导致 build/ 目录中的文件可供文件查找器使用:

build/** linguist-generated=false

请注意,此替代需要使用递归 glob 模式 (**)。 有关详细信息,请参阅 Git 文档中的“模式格式”。 不支持对默认排除目录中的子目录进行更复杂的替代。

搜索仓库

可以在 GitHub 上搜索仓库,并使用这些仓库搜索限定符的任意组合缩小结果范围。

可以在所有 GitHub.com 内全局搜索存储库,也可以在特定组织内搜索存储库。 有关详细信息,请参阅“关于在 GitHub 上搜索”。

若要在搜索结果中包含分支,需要在查询中添加 fork:true 或 fork:only。 有关详细信息,请参阅“在复刻中搜索”。

提示:

有关可以添加到任何搜索限定符以进一步改善结果的搜索语法列表,请参阅“了解搜索语法”。
对多个字词的搜索词使用引号。 例如,如果要搜索具有标签“In progress”的问题,可搜索 label:"in progress"。 搜索不区分大小写。

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

通过 in 限定符,可将搜索范围限制到存储库名称、存储库说明、存储库主题、自述文件内容或这些项的任意组合。 如果省略此限定符,则仅搜索存储库名称、说明和主题。

限定符    示例
in:name    jquery in:name 匹配名称中带有“jquery”的存储库。
in:description    jquery in:name,description 匹配名称或说明中带有“jquery”的存储库。
in:topics    jquery in:topics 将带“jquery”标签的存储库匹配为主题。
in:readme    jquery in:readme 匹配自述文件中提及“jquery”的存储库。
repo:owner/name    repo:octocat/hello-world 匹配特定的存储库名称。

基于仓库的内容搜索

可以使用 in:readme 限定符,通过搜索存储库自述文件中的内容来查找存储库。 有关详细信息,请参阅“关于自述文件”。

除了使用 in:readme,还可以通过搜索存储库中的特定内容来查找存储库。 要搜索仓库内的特定文件或内容,您可以使用查找器或代码特定的搜索限定符。 有关详细信息,请参阅“在 GitHub 上查找文件”和“了解 GitHub 代码搜索语法”。

限定符    示例
in:readme    octocat in:readme 匹配自述文件中提及“octocat”的存储库。

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

若要在特定用户或组织拥有的所有存储库中搜索,可使用 user 或 org 限定符。

限定符    示例
user:USERNAME    user:defunkt forks:>100 匹配来自 @defunkt 且具有超过 100 个分支的存储库。
org:ORGNAME    org:github 匹配来自 GitHub 的存储库。

按仓库大小搜索

size 限定符使用大于、小于和范围限定符查找与特定大小(以千字节为单位)匹配的存储库。 有关详细信息,请参阅“了解搜索语法”。

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

按关注者数量搜索

可以使用 followers 限定符以及大于、小于和范围限定符,根据关注存储库的用户数量筛选存储库。 有关详细信息,请参阅“了解搜索语法”。

限定符    示例
followers:>=n    node followers:>=10000 匹配有 10,000 名或更多关注者提及“node”一词的存储库。
followers:n..n    styleguide linter followers:1..10 匹配有 1 至 10 名关注者提及“styleguide linter”一词的存储库。

按复刻数量搜索

forks 限定符使用大于、小于和范围限定符指定存储库应具有的分支数量。 有关详细信息,请参阅“了解搜索语法”。

限定符    示例
forks:n    forks:5 匹配只有五个分支的存储库。
forks:>n    forks:>=205 匹配至少有 205 个分支的存储库。
forks:<n    forks:<90 匹配具有少于 90 个分支的存储库。
forks:n..n    forks:10..20 匹配具有 10 到 20 个分支的存储库。

按星号数量搜索

您可以使用大于、小于和范围限定符,基于仓库的星标数量来搜索仓库。 有关详细信息,请参阅“使用星标保存仓库”和“了解搜索语法”。

限定符    示例
stars:n    stars:500 匹配正好有 500 个星标的存储库。
stars:n..n size:<n    stars:10..20 size:<1000 匹配有 10 到 20 个星标、小于 1000 KB 的存储库。
stars:>=n fork:true language:LANGUAGE    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 匹配具有 2011 年之前创建的“webos”一词的存储库。
pushed:>YYYY-MM-DD    css pushed:>2013-02-01 匹配具有在 2013 年 1 月之后推送到其中的“css”一词的存储库。
pushed:>=YYYY-MM-DD fork:only    case pushed:>=2013-03-06 fork:only 匹配在 2013 年 3 月 6 日或之后将“case”一词推送到其中的存储库(即分支)。

按语言搜索

您可以根据仓库中代码的语言搜索仓库。

限定符    示例
language:LANGUAGE    rails language:javascript 匹配具有以 JavaScript 编写的“rails”一词的存储库。

按主题搜索

您可以找到按特定主题分类的所有仓库。 有关详细信息,请参阅“使用主题对仓库分类”。

限定符    示例
topic:TOPIC    topic:jekyll 匹配按“Jekyll”主题分类的存储库。

按主题数量搜索

可以使用 topics 限定符以及大于、小于和范围限定符,根据应用于存储库的主题数量来搜索存储库。 有关详细信息,请参阅“使用主题对仓库分类”和“了解搜索语法”。

限定符    示例
topics:n    topics:5 匹配具有五个主题的存储库。
topics:>n    topics:>3 匹配具有三个以上主题的存储库。

按许可搜索

您可以根据仓库中许可的类型搜索仓库。 您必须使用许可关键字,按特定许可或许可系列来过滤仓库。 有关详细信息,请参阅“许可仓库”。

限定符    示例
license:LICENSE_KEYWORD    license:apache-2.0 匹配根据 Apache 许可证 2.0 许可的存储库。

按仓库可见性搜索

您可以根据仓库的可见性过滤搜索。 有关详细信息,请参阅“关于仓库”。

| 限定符 | 示例 | ------------- | ------------- | | is:public | is:public org:github 匹配由 GitHub 所有的公共存储库。 | is:private | is:private pages 匹配你可以访问且包含“pages”一词的专用存储库。

基于仓库是否为镜像搜索

您可以根据仓库是否为镜像以及托管于其他位置托管来搜索仓库。 有关详细信息,请参阅“寻找在 GitHub 上参与开源项目的方法”。

限定符    示例
mirror:true    mirror:true GNOME 匹配为镜像且包含“GNOME”一词的存储库。
mirror:false    mirror:false GNOME 匹配不为镜像且包含“GNOME”一词的存储库。

根据存储库是否为模板搜索

你可以根据存储库是否是模板来搜索存储库。 有关详细信息,请参阅“创建模板仓库”。

限定符    示例
template:true    template:true GNOME 匹配是模板且包含“GNOME”一词的存储库。
template:false    template:false GNOME 匹配不是模板且包含“GNOME”一词的存储库。

基于仓库是否已存档搜索

您可以基于仓库是否已存档来搜索仓库。 有关详细信息,请参阅“存档仓库”。

限定符    示例
archived:true    archived:true GNOME 匹配已存档且包含“GNOME”一词的存储库。
archived:false    匹配未存档且包含“GNOME”一词的存储库。

根据带有 good first issue 或 help wanted 标签的议题数进行搜索

可以使用限定符 help-wanted-issues:>n 和 good-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”一词的存储库。

基于赞助能力的搜索

可以使用 is:sponsorable 限定符搜索其所有者可以在 GitHub Sponsors 上获得赞助的存储库。 有关详细信息,请参阅“关于 GitHub 赞助商”。

可以使用 has:funding-file 限定符搜索具有融资文件的存储库。 有关详细信息,请参阅“在仓库中显示赞助者按钮”。

限定符    示例
is:sponsorable    is:sponsorable 匹配其所有者拥有 GitHub Sponsors 配置文件的存储库。
has:funding-file    has:funding-file 匹配具有 FUNDING.yml 文件的存储库。

总结

好,我们来总结一下。我们想要进行精准搜索,无非就是增加筛选条件。

  • in:name xxx // 按照项目名搜索

  • in:readme xxx // 按照README搜索

  • in:description xxx // 按照description搜索

那么在这里面呢,我们又可以增加筛选条件

  • stars:>xxx // stars数大于xxx

  • forks:>3000 // forks数大于xxx

  • language:xxx // 编程语言是xxx

  • pushed:>YYYY-MM-DD // 最后更新时间大于YYYY-MM-DD

原文链接:

你会在 GitHub上面找项目吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/409990.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Maven】008-Maven 私服搭建与使用

【Maven】008-Maven 私服搭建与使用 文章目录 【Maven】008-Maven 私服搭建与使用一、概述1、简介2、建立私服后依赖查找和下载逻辑第一步&#xff1a;请求本地仓库第二步&#xff1a;请求 Maven 私服第三步&#xff1a;请求外部远程仓库&#xff08;远程中央仓库等&#xff09…

【PostgreSQL】安装和常用命令教程

PostgreSQL window安装教程 window安装PostgreSQL 建表语句&#xff1a; DROP TABLE IF EXISTS student; CREATE TABLE student (id serial NOT NULL,name varchar(100) NOT NULL,sex varchar(5) NOT NULL,PRIMARY KEY (id) );INSERT INTO student (id, name, sex) VALUES (…

详解ISIS动态路由协议

华子目录 前言应用场景历史起源ISIS路由计算过程ISIS的地址结构ISIS路由器分类ISIS邻居关系的建立P2PMA ISIS中的DIS与OSPF中DR的对比链路状态信息的交互ISIS的最短路径优先算法&#xff08;SPF&#xff09;ISIS区域划分ISIS区域间路由访问原理ISIS与OSPF的不同ISIS与OSPF的术语…

2024美赛数学建模思路 - 复盘:校园消费行为分析

文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…

基于Docker的Nginx的安装与配置

基于Docker的Nginx的安装与配置 1 为Nginx创建一个容器1.1 学习docker run1.2 通过docker run为Nginx创建并启动一个容器 2 配置Nginx2.1 学习docker的bind mount技术2.2 在Nginx容器中找到想修改的文件所在的目录2.2.1 认识nginx.conf文件2.2.2 访问Nginx服务&#xff0c;默认…

TortoiseGit 2.15.0.0 安装与配置(图文详细教程)

TortoiseGit的安装与配置 TortoiseGit是Tortoise为Git提供的版本可视化工具&#xff0c;简化了记忆Git命令行的过程&#xff0c;将命令行可视化。 确保自己电脑中已经下载好了git 官网下载TortoiseGit Download – TortoiseGit – Windows Shell Interface to Git 选择64-bi…

oracle 19c容器数据库data dump数据泵传输数据(3)---完全传输

目录 查看pdb1 创建pdb2 从pdb1 中导出元数据 在pdb2中导入元数据&#xff08;dmp文件&#xff09; Full Transportable Export/Import: Example 只传输除了system&#xff0c;sysaux&#xff0c;temp&#xff0c;undo以外的用户表空间&#xff0c;這種方式傳輸的是用戶自定…

C# 图解教程 第5版 —— 第24章 预处理指令

文章目录 24.1 什么是预处理指令24.2 基本规则24.3 符号指令&#xff08;#define、#undef &#xff09;24.4 条件编译&#xff08;#if、#else、#elif、#endif&#xff09;24.5 条件编译结构24.6 诊断指令&#xff08;#warning、#error&#xff09;24.7 行号指令&#xff08;#li…

毕业设计:基于python微博舆情分析系统+可视化+Django框架 K-means聚类算法(源码)✅

毕业设计&#xff1a;2023-2024年计算机专业毕业设计选题汇总&#xff08;建议收藏&#xff09; 毕业设计&#xff1a;2023-2024年最新最全计算机专业毕设选题推荐汇总 &#x1f345;感兴趣的可以先收藏起来&#xff0c;点赞、关注不迷路&#xff0c;大家在毕设选题&#xff…

部署本地GPT

在现实生活中&#xff0c;很多公司或个人的资料是不愿意公布在互联网上的&#xff0c;但是我们又要使用人工智能的能力帮我们处理文件、做决策、执行命令那怎么办呢&#xff1f;于是我们构建自己或公司的本地专属GPT变得非常重要。 先看效果&#xff1a; 查资料不用愁 家教不…

linux安装minio

目录 1、服务器创建minio文件 2、进入minio下的bin下 3、授予服务端和客户端文件可执行权限 4、设置用户名和密码 5、启动minio服务 6、查看minio版本 ​7、访问minio控制台 1、服务器创建minio文件 # 创建minio应用程序目录 mkdir -p /opt/minio/bin # 创建minio数据目…

IP定位技术在网络安全行业的探索

随着互联网的普及和深入生活&#xff0c;网络安全问题日益受到人们的关注。作为网络安全领域的重要技术&#xff0c;IP定位技术正逐渐成为行业研究的热点。本文将深入探讨IP定位技术在网络安全行业的应用和探索。 一、IP定位技术的概述 IP定位技术是通过IP地址来确定设备地理位…