使用Github开始你的开源生涯
Github是全球最流行的代码托管平台,也是全球最大的IT领域同性交友平台(😁).虽然它本身并不是开源的,但现如今它已经在开源生态中稳稳占据了一席之地,如今活跃的开源软件几乎都托管在上面. 本人作为2014年注册的老休闲玩家将在接下来的一系列文章中利用Github介绍如何开始你的开源生涯,并给出各种功能可能的开源替代品.
本文先介绍如何在Github上寻找和使用开源项目
申请账号
要用Github当然要注册账号,进入主页就可以注册.
注册好后就可以进入首页了
首页设计相当简洁,中间是你关注的项目和关注的朋友的最新动态,左上角是你自己代码仓库的快捷入口,右下角则是推荐的项目,然后穿插在右上角的是github自己的相关广告,左下角是你的团队.
当然有这些的前提是你有过对应的操作,如果是新用户那十有八九就是一块白板了.
找到你要的开源工具
Github是开源软件的代码托管集中地,因此恐怕不少人用它也是为了寻找开源软件.这没啥的很正常,也算是支持了开源.
Github有很便捷搜索功能可以帮你查找到想要的开源工具.如果你使用旧了,它的推荐项目一般也总能让你感兴趣.
搜索页
在任何页面的顶部左侧有可以快速进行搜索操作.如果你在某个项目的代码仓库中,那么就是搜索这个仓库中的内容;如果是其他页面,那么就是在Github中查找符合要求的代码仓库.
查找开源项目当然是用的第二种情况.我们可以在首页直接搜索,这样就会跳出搜索栏,你可以在右侧看到搜到的结果.如果要缩小搜索范围左侧上边是类型,下面是编程语言,我们可以选择.
搜索结果的排序顺序也可以选择,一般会选择most stars
,most forks
或者recently update
.
推荐页
当你的行为多了,Github的推荐算法就可以为你做推荐了.推荐在任何页面顶部的Export
选单中进入.就我的观察它推荐的东西基本也是我关注的领域.
推荐页不光推荐项目代码仓库,也推荐活跃用户.你也可以去看看这些推荐给你认识的大神他们在关注什么.
如何评估一个项目是否是你要的
搜索,推荐都只是能够让你知道有这么项目,要知道一个项目是不是你感兴趣的当然最终还是要进去看看.
代码仓库页如下:
通常开源项目都会有一个README
文件用于描述自己的功能,特点,版本迭代等信息,有的还会提供一些例子什么的.
有的项目会将一些开发相关的文档,或者问答放在项目的wiki
下.有的项目还会为自己部署一个静态文档网站用于介绍项目.
一般来说文档描述越清晰越丰富的项目靠谱的可能性越高.
项目右上角是项目的被关注信息,第一项为watch
,第二项为stars
第三项为fork
通常watch越多说明关注的人越多;stars越多说明感兴趣的人越多,fork越多说明想参与开发或者想在其基础上跟进开发的越多.
接着项目顶部是项目的开发相关的信息,比较重要的是issue
和pull requests
和Insights
,
通常issue越多说明项目讨论的越多,pull requests越多说明参与人贡献代码越多
issue一般也是提交改进建议和bug的地方,即便项目的bug被提交很多也不代表不靠谱,因为很多开源项目开始只是一个想法,bug多是很正常的,反而提交的bug多说明用的人多,如果作者或者其他贡献者对bug进行及时的修复那么反而证明这个项目很靠谱.
Insights
则是一些关于项目状态的快速预览.进去以后可以看到代码贡献者的贡献量.比较值得关注的是代码的提交信息,进入commits
中可以看到提交代码的情况,借此可以看出这个项目的活跃程度.
并不是说越活跃的项目就越好,不活跃的项目可能只是因为已经成熟了.这也需要考量.
关注项目的动向
项目右上角是项目的被关注信息,第一项为watch
,第二项为starts
,我们可以使用这两个功能来关注项目的动向.
stars
stars
类似收藏,点下就会计入自己的stars
列表
我们可以在自己的页面上看到自己stars
的项目列表,这个页面和搜索页类似,我们也可以选择编程语言也可以查找
watch
watch
可以关注项目的动向,我们可以选择release only
和watch
.
-
watch
会将项目的所有进展信息都推送给你,包括工单和对工单的回答在内的信息也会以邮件的形式发送给你的注册邮箱. -
release only
则只会在项目release时发送提醒
关注优秀贡献者的动向
任何领域总会有些”明星”一样的人物,我们也可以直接关注这些人看他们的动向了解相关领域的动向.我们可以在项目中找到贡献则,点击它就可以进入用户页.
当然了我们自己的用户页和这个也很类似.我们可以在其中看到他参与关注的项目.同时我们可以follow
他,这样就可以获得他动向的推送了.
图中的大神是pytorch的贡献者,感谢大佬的付出!
给项目提工单
我们当然不会是找开源项目玩的,找下来是用的.使用中就难免会遇到bug或者使用不当,我们可以去工单页提交工单寻求其他人的帮助.
提交工单一般不是随便提交的,首先就是尊重.请记住开源项目虽然欢迎大家使用但并没有求着谁来用,贡献者也没有义务为用户解决问题.
所以就有以下几点建议:
提问是需要有礼仪的。
- 尊重作者的语言习惯,比如项目作者用中文,如果你会那你最好也用中文,不会那没办法,也可以用英文.
- 有问题不要上来就提工单,请先自己尝试解决,解决不了再来提工单.
- 提交工单前先看看是否已经有相关工单,很多时候我们都可以找到类似的,里面有时候也会有解决方案或者临时解决方案.
- 遵守项目对工单的要求,不少项目会对工单格式有要求(比如工单模板),一般也都是为了可以快速定位问题节省大家的时间.
- 工单格式即便没有要求也应该讲明执行平台,软件版本,执行环境信息,错误信息等.
- 尽量明确自己的需求类型,Github是为工单提供标签的,标签可以标明需求的类型和严重程度.尽量使用标签著名这些信息方便其他人查询
- 工单中就项目论项目,不要带上其他信息,更加不要因为作者拒绝而发牢骚或者恶语相向,有能耐你可以自己fork自己解决.
给项目fork一份到自己的账户
有时候我们会希望自己基于当前的项目魔改代码解决问题,这种时候可以点击fork
将代码当前的状态clone一份到自己的账户下就可以了,后续还可以通过pull requests
向原项目提交代码.