一、简介
前言
GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。(git的基本使用)
GitHub 于 2008 年 4 月 10 日正式上线,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其托管版本数量非常之多,而且其中不乏知名开源项目,例如 Linux、Vue、Reract、Spring 等。
GitHub是全球最大的开源代码托管平台之一,为程序员、开发者和技术爱好者提供了一个协作开发、学习和分享的理想场所。在这篇文章中,我们将分享一些关于如何充分利用GitHub的经验和技巧,包括了解GitHub的功能、参与开源项目、找到感兴趣的项目以及如何将GitHub用于学习。
1 开源贡献者
1.1 Linus Torvalds
GitHub 主页:https://github/torvalds
Linus Torvalds,全球著名的电脑程序员、黑客,Linux 之父。
1.2 John Resig
Github主页: https://github/jeresig
John Resig,jQuery 的创始人和技术领袖,著有《Pro JavaScript Techniques》(即《精通JavaScript》)等经典 JavaScript 书籍。
1.3 尤雨溪
Github主页: https://github/yyx990803
2 开源项目及公司
在 GitHub 上开源的著名项目非常之多,选择在 GitHub 上开源的世界顶级公司也很多,在此也各罗列 3 个,以供大家膜拜!
2.1 项目(proj)
Linux:https://github/torvalds/linux
Spring:https://github/spring-projects/spring-framework
2.2 公司(org)
Google: Google
Microsoft:Microsoft
Alibaba:Alibaba
3 术语解释
Repository:简称Repo,可以理解为“仓库”,我们的项目就存放在仓库之中。也就是说,如果我们想要建立项目,就得先建立仓库;有多个项目,就建立多个仓库。
Issues:可以理解为“问题”,举一个简单的例子,如果我们开源一个项目,如果别人看了我们的项目,并且发现了bug,或者感觉那个地方有待改进,他就可以给我们提出Issue,等我们把Issues解决之后,就可以把这些Issues关闭;反之,我们也可以给他人提出Issue。
Star:可以理解为“点赞”,当我们感觉某一个项目做的比较好之后,就可以为这个项目点赞,而且我们点赞过的项目,都会保存到我们的Star之中,方便我们随时查看。在 GitHub 之中,如果一个项目的点星数能够超百,那么说明这个项目已经很不错了。
Fork:可以理解为“拉分支”,如果我们对某一个项目比较感兴趣,并且想在此基础之上开发新的功能,这时我们就可以Fork这个项目,这表示复制一个完成相同的项目到我们的 GitHub 账号之中,而且独立于原项目。之后,我们就可以在自己复制的项目中进行开发了。
Pull Request:可以理解为“提交请求”,此功能是建立在Fork之上的,如果我们Fork了一个项目,对其进行了修改,而且感觉修改的还不错,我们就可以对原项目的拥有者提出一个Pull请求,等其对我们的请求审核,并且通过审核之后,就可以把我们修改过的内容合并到原项目之中,这时我们就成了该项目的贡献者。
Merge:可以理解为“合并”,如果别人Fork了我们的项目,对其进行了修改,并且提出了Pull请求,这时我们就可以对这个Pull请求进行审核。如果这个Pull请求的内容满足我们的要求,并且跟我们原有的项目没有冲突的话,就可以将其合并到我们的项目之中。当然,是否进行合并,由我们决定。
Watch:可以理解为“观察”,如果我们Watch了一个项目,之后,如果这个项目有了任何更新,我们都会在第一时候收到该项目的更新通知。
二、 了解一个开源项目
1、Github的项目有什么组成?
要搜索项目,就要先了解一下一个项目有什么组成。
- Name:即仓库的名称
- About:项目简单说明,项目的归类,项目的官网
- Readme:这是项目的详细说明,一般包括项目的使用说明、开源协议
- Contributors :作者
- 源码:项目的代码
除此之外,还有star数、fork数、开源协议、release发布版本,以及以下一些操作供用户使用:
watch:会持续收到项目的动态
fork:复制某个项目到自己的仓库
star:可以理解为点赞
clone:将项目下载到本地
follow:关注你感兴趣的作者,会收到他们的动态
2 Issue
要了解一个开源项目,你可以从提出问题开始。如果你在使用项目时遇到了问题或者有建议,可以创建一个Issue来描述你的问题或建议,也可以从现有的issue中查询是不是已经解决的问题。
2.1 界面
2.2不同标签
-
bug(缺陷): 这个标签通常用于标识报告了软件或项目中的问题或缺陷的 Issues 或 Pull Request。它表示这个问题需要被修复。
-
dependencies(依赖关系): 这个标签通常用于 Issues 或 Pull Request,以表示它们涉及到项目的依赖关系,可能是添加、更新或删除依赖。
-
Pull requests : 这个标签通常用于标识 Pull Request,该 Pull Request 用于更新项目的依赖文件,例如更新依赖库的版本。
-
duplicate(重复): 当有多个用户报告了相同的问题时,可以使用这个标签标识其中一个,然后关闭其他重复的问题。这有助于维护者更好地管理问题列表。
-
enhancement(增强功能): 这个标签通常用于标识提出了关于增强项目功能或添加新功能的 Issues 或 Pull Request。
-
feature(特性): 与增强功能类似,这个标签通常用于标识提出了新特性或功能的 Issues 或 Pull Request。
-
help wanted(需要帮助): 这个标签通常用于标识维护者希望社区或其他贡献者帮助解决的问题。这可以吸引更多的人参与项目。
-
invalid(无效): 当一个问题被报告为无效或不适合时,维护者可以使用这个标签来关闭问题。
-
question(问题): 这个标签通常用于标识用户提出的问题或疑问,但不涉及缺陷或功能请求。
-
wontfix(不会修复): 当一个问题被维护者决定不会修复时,可以使用这个标签来关闭问题。通常在问题的评论中会提供解释。
2.3 提出一个新issue
-
Bug Report(Bug 报告):用于报告关于项目中的问题或缺陷。如果用户在 APISIX 中遇到了错误,他们可以使用此标签提交报告,帮助改进项目。
-
Feature Request(功能请求):用于提出关于增强 APISIX 功能或添加新功能的请求。如果用户认为 APISIX 可以做得更好或希望添加某些功能,他们可以使用此标签提交请求。
-
Documentation Issue(文档问题):用于报告与项目文档相关的问题。如果用户发现文档中的错误、不一致性或需要改进的地方,他们可以使用此标签提交问题。
-
Request Help(请求帮助):用于在遇到困难或问题时向社区寻求帮助。如果用户需要关于 APISIX 的帮助或解决某些问题,他们可以使用此标签提出请求。
-
Report a security vulnerability(报告安全漏洞):用于报告与项目安全性相关的问题,例如潜在的漏洞。这是一个重要的标签,因为安全问题需要尽快得到解决,同时也需要谨慎处理,以保护用户和项目的安全。
-
APISIX Discussion Forum(APISIX 讨论区):用于在讨论区提出和回答问题。如果用户有关于 APISIX 的一般问题或需要进行更广泛的讨论,他们可以使用此标签。
3 查看不同的版本
GitHub上的开源项目通常会有不同的版本。你可以在项目的仓库页面上找到版本发布的历史记录,以及每个版本的更新内容。这有助于你了解项目的演进和改进。
4 讨论区
很多项目都有讨论区或论坛,你可以在这些地方与其他项目用户和贡献者交流、提问和讨论。这是获取关于项目的更多信息和支持的好地方。
三、 找到自己感兴趣的开源项目
3.1 Github Trending
https://github/trending
3.2 搜索技巧
技巧 | 示例 |
---|---|
使用关键词进行搜索 | .NET Admin 或 react framework |
使用语言筛选器 | language:C# 或 language:python |
搜索账号完整名称 | fullname:追逐时光者 |
使用用户筛选器 | user:YSGStudyHards |
使用组织筛选器 | org:organization |
使用星标筛选器 | stars:>1000 |
使用更新时间筛选器 | pushed:>2023-07-01 |
技巧 | 示例 |
---|---|
搜索某一领域的资料(awesome) | awesome+chatgpt |
搜索一个具体示例(sample) | spirng sample |
搜索一个项目架子(starter) | vue starter |
搜索一个教程(tutorial) | java tutorial |
ps:
使用高级搜索功能
GitHub提供了高级搜索功能,可以帮助你找到符合你兴趣和需求的项目。你可以按关键词、语言、星级、更新时间等条件进行过滤和排序,以找到最适合你的项目。
四、 GitHub上的好玩项目
###怎么做饭
随机菜品模拟器
996.icu
ChatGPT-Next-Web
chatgpt
freeCodeCamp
一、简介
前言
GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。(git的基本使用)
GitHub 于 2008 年 4 月 10 日正式上线,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其托管版本数量非常之多,而且其中不乏知名开源项目,例如 Linux、Vue、Reract、Spring 等。
GitHub是全球最大的开源代码托管平台之一,为程序员、开发者和技术爱好者提供了一个协作开发、学习和分享的理想场所。在这篇文章中,我们将分享一些关于如何充分利用GitHub的经验和技巧,包括了解GitHub的功能、参与开源项目、找到感兴趣的项目以及如何将GitHub用于学习。
1 开源贡献者
1.1 Linus Torvalds
GitHub 主页:https://github/torvalds
Linus Torvalds,全球著名的电脑程序员、黑客,Linux 之父。
1.2 John Resig
Github主页: https://github/jeresig
John Resig,jQuery 的创始人和技术领袖,著有《Pro JavaScript Techniques》(即《精通JavaScript》)等经典 JavaScript 书籍。
1.3 尤雨溪
Github主页: https://github/yyx990803
2 开源项目及公司
在 GitHub 上开源的著名项目非常之多,选择在 GitHub 上开源的世界顶级公司也很多,在此也各罗列 3 个,以供大家膜拜!
2.1 项目(proj)
Linux:https://github/torvalds/linux
Spring:https://github/spring-projects/spring-framework
2.2 公司(org)
Google: Google
Microsoft:Microsoft
Alibaba:Alibaba
3 术语解释
Repository:简称Repo,可以理解为“仓库”,我们的项目就存放在仓库之中。也就是说,如果我们想要建立项目,就得先建立仓库;有多个项目,就建立多个仓库。
Issues:可以理解为“问题”,举一个简单的例子,如果我们开源一个项目,如果别人看了我们的项目,并且发现了bug,或者感觉那个地方有待改进,他就可以给我们提出Issue,等我们把Issues解决之后,就可以把这些Issues关闭;反之,我们也可以给他人提出Issue。
Star:可以理解为“点赞”,当我们感觉某一个项目做的比较好之后,就可以为这个项目点赞,而且我们点赞过的项目,都会保存到我们的Star之中,方便我们随时查看。在 GitHub 之中,如果一个项目的点星数能够超百,那么说明这个项目已经很不错了。
Fork:可以理解为“拉分支”,如果我们对某一个项目比较感兴趣,并且想在此基础之上开发新的功能,这时我们就可以Fork这个项目,这表示复制一个完成相同的项目到我们的 GitHub 账号之中,而且独立于原项目。之后,我们就可以在自己复制的项目中进行开发了。
Pull Request:可以理解为“提交请求”,此功能是建立在Fork之上的,如果我们Fork了一个项目,对其进行了修改,而且感觉修改的还不错,我们就可以对原项目的拥有者提出一个Pull请求,等其对我们的请求审核,并且通过审核之后,就可以把我们修改过的内容合并到原项目之中,这时我们就成了该项目的贡献者。
Merge:可以理解为“合并”,如果别人Fork了我们的项目,对其进行了修改,并且提出了Pull请求,这时我们就可以对这个Pull请求进行审核。如果这个Pull请求的内容满足我们的要求,并且跟我们原有的项目没有冲突的话,就可以将其合并到我们的项目之中。当然,是否进行合并,由我们决定。
Watch:可以理解为“观察”,如果我们Watch了一个项目,之后,如果这个项目有了任何更新,我们都会在第一时候收到该项目的更新通知。
二、 了解一个开源项目
1、Github的项目有什么组成?
要搜索项目,就要先了解一下一个项目有什么组成。
- Name:即仓库的名称
- About:项目简单说明,项目的归类,项目的官网
- Readme:这是项目的详细说明,一般包括项目的使用说明、开源协议
- Contributors :作者
- 源码:项目的代码
除此之外,还有star数、fork数、开源协议、release发布版本,以及以下一些操作供用户使用:
watch:会持续收到项目的动态
fork:复制某个项目到自己的仓库
star:可以理解为点赞
clone:将项目下载到本地
follow:关注你感兴趣的作者,会收到他们的动态
2 Issue
要了解一个开源项目,你可以从提出问题开始。如果你在使用项目时遇到了问题或者有建议,可以创建一个Issue来描述你的问题或建议,也可以从现有的issue中查询是不是已经解决的问题。
2.1 界面
2.2不同标签
-
bug(缺陷): 这个标签通常用于标识报告了软件或项目中的问题或缺陷的 Issues 或 Pull Request。它表示这个问题需要被修复。
-
dependencies(依赖关系): 这个标签通常用于 Issues 或 Pull Request,以表示它们涉及到项目的依赖关系,可能是添加、更新或删除依赖。
-
Pull requests : 这个标签通常用于标识 Pull Request,该 Pull Request 用于更新项目的依赖文件,例如更新依赖库的版本。
-
duplicate(重复): 当有多个用户报告了相同的问题时,可以使用这个标签标识其中一个,然后关闭其他重复的问题。这有助于维护者更好地管理问题列表。
-
enhancement(增强功能): 这个标签通常用于标识提出了关于增强项目功能或添加新功能的 Issues 或 Pull Request。
-
feature(特性): 与增强功能类似,这个标签通常用于标识提出了新特性或功能的 Issues 或 Pull Request。
-
help wanted(需要帮助): 这个标签通常用于标识维护者希望社区或其他贡献者帮助解决的问题。这可以吸引更多的人参与项目。
-
invalid(无效): 当一个问题被报告为无效或不适合时,维护者可以使用这个标签来关闭问题。
-
question(问题): 这个标签通常用于标识用户提出的问题或疑问,但不涉及缺陷或功能请求。
-
wontfix(不会修复): 当一个问题被维护者决定不会修复时,可以使用这个标签来关闭问题。通常在问题的评论中会提供解释。
2.3 提出一个新issue
-
Bug Report(Bug 报告):用于报告关于项目中的问题或缺陷。如果用户在 APISIX 中遇到了错误,他们可以使用此标签提交报告,帮助改进项目。
-
Feature Request(功能请求):用于提出关于增强 APISIX 功能或添加新功能的请求。如果用户认为 APISIX 可以做得更好或希望添加某些功能,他们可以使用此标签提交请求。
-
Documentation Issue(文档问题):用于报告与项目文档相关的问题。如果用户发现文档中的错误、不一致性或需要改进的地方,他们可以使用此标签提交问题。
-
Request Help(请求帮助):用于在遇到困难或问题时向社区寻求帮助。如果用户需要关于 APISIX 的帮助或解决某些问题,他们可以使用此标签提出请求。
-
Report a security vulnerability(报告安全漏洞):用于报告与项目安全性相关的问题,例如潜在的漏洞。这是一个重要的标签,因为安全问题需要尽快得到解决,同时也需要谨慎处理,以保护用户和项目的安全。
-
APISIX Discussion Forum(APISIX 讨论区):用于在讨论区提出和回答问题。如果用户有关于 APISIX 的一般问题或需要进行更广泛的讨论,他们可以使用此标签。
3 查看不同的版本
GitHub上的开源项目通常会有不同的版本。你可以在项目的仓库页面上找到版本发布的历史记录,以及每个版本的更新内容。这有助于你了解项目的演进和改进。
4 讨论区
很多项目都有讨论区或论坛,你可以在这些地方与其他项目用户和贡献者交流、提问和讨论。这是获取关于项目的更多信息和支持的好地方。
三、 找到自己感兴趣的开源项目
3.1 Github Trending
https://github/trending
3.2 搜索技巧
技巧 | 示例 |
---|---|
使用关键词进行搜索 | .NET Admin 或 react framework |
使用语言筛选器 | language:C# 或 language:python |
搜索账号完整名称 | fullname:追逐时光者 |
使用用户筛选器 | user:YSGStudyHards |
使用组织筛选器 | org:organization |
使用星标筛选器 | stars:>1000 |
使用更新时间筛选器 | pushed:>2023-07-01 |
技巧 | 示例 |
---|---|
搜索某一领域的资料(awesome) | awesome+chatgpt |
搜索一个具体示例(sample) | spirng sample |
搜索一个项目架子(starter) | vue starter |
搜索一个教程(tutorial) | java tutorial |
ps:
使用高级搜索功能
GitHub提供了高级搜索功能,可以帮助你找到符合你兴趣和需求的项目。你可以按关键词、语言、星级、更新时间等条件进行过滤和排序,以找到最适合你的项目。
四、 GitHub上的好玩项目
###怎么做饭