GitHub是什么呢?这里我引用下官方的说法吧:
GitHub是汇集了全世界开发者的最大的开发社区,它帮助开发者发现,共享和构建更好的软件。从开源项目到私人团队仓库,GitHub是进行协作开发的统一平台。
我主要讲一下,自己的Github应该怎么看,别人的仓库应该怎么看。
目录
个人页面
项目基本面分析
查看项目目的分析
延展:搜索
延展:个人项目的开发
个人页面
在GitHub上,我们可以创建自己的项目(仓库)。仓库分为公有库和私有库,私有库需要付费(学生可以申请免费)。
我以前看到一个关于GitHub的类比“朋友圈”图,我记忆很深刻,我这里仿造一个:
这样就很好理解了吧,大型男性(划掉)程序员交友社区。
我们在衡量别的开发者的时候,也可以看看他的活跃程度,他的关注点(仓库、Star)。
项目基本面分析
GitHub里有很多仓库,对于仓库应该怎么“看”,这里我说说我的看法。
以aspnetboilerplate为例,初步了解一个项目,可以先看项目描述(有官网链接)和下面的README文档。这些内容会迅速帮助我们掌握,这个项目是用来做什么的,包含哪些功能,支持哪些框架,设计理念是什么等等。我们以此确定,这是否是我们需要的东西,如果是,可以继续往下衡量。
根据下图,我按照数字顺序依次说一下。
1:从左到右,
“Used By”,被多少人使用。
“Watch”被多少人关注,点击关注,则此项目的讨论、更新都会以邮件的形式发送给你,可以理解为“订阅”。
“Star”,类似朋友圈的“我喜欢”,对应个人页面中的Star tab。
Watch和Star越多,说明这个项目越多人关注、使用,可靠性越高。
“Fork”,会复制一个该仓库的副本到我们的仓库下,借此我们以此为基础,进行二次开发。当然也可以在开发完成后提交给原仓库,使用图中数字6的“New pull request”按钮,选择自己的仓库->原仓库即可。
用图来说明就是下图这个流程,当然2、3是做了简化的,2、3是之前“版本控制”篇提到的那些流程,clone-commit-pull-push。
2:那几个Tab一般看Code和Issues较多,
Code就是代码,当前页。
Issues一般是使用该项目的开发者提出的一些Bug反馈、优化建议、Feature目标等。在衡量一个项目是否值得采纳的时候,可以简单扫一下,主要看看是否有重大bug没有修复、开发者的反馈速度如何、整个项目是否活跃。
3:Release是发布版本,可以在此下载该项目的各个版本。根据需求确定是否下载,因为也可能可以通过nuget直接安装或者通过其它方式安装。
再来可以看下版本号,一般最新版本为0.x、1.x,证明项目可能还不够完善,开发时间还不长,使用者还不够多。
4:克隆或下载仓库的地方。
5:切换分支。在“版本控制”篇中,我们提到了“分支”的概念,回忆一下,修复bug的分支、准备发布的分支、开发新功能的分支等等。
6:Pull request
,提交代码给该仓库。
7:仓库文件列表,重点是看后面的最后提交时间,特别是一般会有的“src”文件夹的提交情况。像现在这种两天前更新,说明该项目十分活跃。
如果显示最后一次提交在一年以前,则基本说明该项目已经无人维护了,则应该考虑不采用该项目。
至于其他的功能,就自行探索吧。
自己的项目与别人的项目有所差别,包括一些操作,比如删除仓库、改名、为其他开发者授权、分支管理、通知设置、访客限制等等,都是关于Git仓库的一些操作和GitHub业务相关的内容。就像自己的朋友圈自己可以编辑、删除,但是别人的朋友圈,我们没有权限操作,类似的。
查看项目目的分析
对于别人家的项目呢,我觉得可以根据目的进行不同的操作。
如果是抱着学习的态度呢,克隆仓库,好好研读。
如果是抱着想使用它的功能的态度呢,先看README,或者一般项目描述也会贴官网链接,去官府看Document,都可以快速入门。
如果使用过程遇到问题,先搜索“项目名称 遇到的问题”,看看有没有现成的答案。如果没有,可以给他们提Issues,看开发组的情况,比较活跃的可以很快得到解答。但不推荐提Issues这个方式,因为“Issues”是用于代码有问题,出Bug,提新的功能(比如增加对XXX的支持)的,而不是解决使用上的问题的。
如果你对某个项目很感兴趣,你也可以为它添砖加瓦(Fork)。
延展:搜索
有时候Github在解决疑难杂症的问题上也是颇有效果。
比如找一些特定的功能,在左上角直接搜索关键词,可能会有意外的收获哦~
在搜索一些奇奇怪怪的问题时,比如特定的类名方法名、比较少见的报错内容,有时候可以在Github上面搜索到关键代码段。这种方式一般用谷歌搜索比较见效,必应目前对Github的支持还不够好。
延展:个人项目的开发
参考“项目基本面分析”的内容,我们在维护个人项目的时候,也应该在项目描述上简单写上“这个项目是做什么的”,应该添加一个README文件,进行详细说明。
如果需要写一系列的文档,则应该写Wiki
,并在README上按照顺序附上链接。
如此,可以让其他开发者对你的项目可以迅速上手,也会提高你的项目的使用率。
看完是不是觉得Github是个大神器!是的,它就是!善用Github,可以把你的水平拉高几个档次呢~