github公司的吉祥物,不知道是章鱼还是猫,我看像是猫,因为它
的名字有猫的字眼,octocat,好的,话题转回正题,
一、github特色
- 核心功能:git仓库的托管服务;
- 其他带来的变化:
- 协作形式变化,辅助多人程序员协同编程的软件
- 引发化学反映的Pull Request,程序员修改了本地代码后,向github提交合并代码的请求,项目责任人可以驳回请求,并支持进行评论功能,光这点互动功能是以前任何版本管理软件都没有的,创新的请求审批功能;
- 对特定用户进行评论,任务管理和bug报告可通过Issue进行交互,只需要at,@用户名,甚至到用户组,@用户组@用户名/仓库名#Issue编号;
- 文字输入支持Markdown编辑器,只记住一种语法便能在多种交流中使用,舒服了我们大家;
- 能看到其他团队的项目代码,只要将感兴趣的仓库添加到Watch中,就可以在News Feed查看相关信息;
- 开源软件与企业内部的开发模式融合,刚入职的应届毕业生熟悉了github开发模式,可以同时很快的投身到开源软件与企业内部开发过程中,当然前提条件是企业需要采用github,两者的区别就是仓库的公开与否的区别了;
二、社会化编程(革命)
github这一服务,给软件开发带来了一次革命,这一概念影响力全世界众多程序员,
Social Coding(社会化编程)这个词,原来作为github公司logo的副标题,但在2013年4月去掉了,
世界上任何人都可以比以前更加容易地获得源代码,将其自由更改并加以公开,如今,世界上众多程序员都在通过github公开源代码,同时支持着自己日常的日常开发。
github为程序员的世界带来了真正意义上的民主,让所有人平等地拥有了更改源代码的权利,而革命领导者github的口号是【社会化编程】
为什么需要社会化编程
当今it业界已经没有了终身雇佣制,人才流动日益增大,
假设一下面试场景:能查看以前代码 vs no
精通最新软件代码 vs no
能理解不同语言或文化差异 vs no
为了不成为后面的,理解github的社会化编程很重要,
不要闭目塞听,要接触不同文化
国内大部分接触的都是非公开代码,更应该接触世界上的不同文化,扩展见闻,
如果只在公司封闭的小世界中敲代码,往往不知不觉间,手中的技术就变得陈腐不堪了
放眼世界,注意那些日新月异的源代码、技术、设计以及文化,会对自己编码带来巨大影响,
作者曾在知名框架的源代码中收到启发,整合到了自己公司内部的项目中。
会写代码的程序员更受青睐
github让所有人平等拥有公开源代码的权利,
看社交网站facebook或twitter能了解一个人的品性
而看github就能了解一个程序员的实力
以代码为生的职业程序员,更应该进行社会化编程,在过去,程序员只需要简单的编程经验,用人单位更重视其人品、协调性、管理能力。但如今踏踏实实写代码的职业程序员反而更收欢迎。
由于近年来的技术发展,一个项目需要用到多种编程语言和技术,以求兼容多种硬件设备。
这种背景下判断程序员的编码能力,最切实可行的办法就是实际写的代码。
github最大特征是【面向人】,带来了全新的世界
github与以往的仓库托管服务的最大不同,就在于它以人为中心,
而以往的版本控制服务以项目为中心,相关的人员,比如管理员是谁,做了哪些事,我们都是不知道
github除了项目外,还可以把注意力放在人(崇拜已久的超级黑客,同学或同事)上,能阅读一个人公开的所有源代码,只要查看News Feed,甚至连他对哪些仓库感兴趣,什么时候提交过,一个人在github进行的开发是一目了然的。
三、github主要功能
git仓库
免费建立任意个git仓库,但只对特定人员公开的私有仓库,则需要按照套餐类型支付费用
公司账户(Oraganization)
公司账户能统一管理帐号和权限,还能统一支付费用,对于公开仓库是免费。
问题任务(Issue)
Issue功能,是将一个任务或问题bug分配给一个Issue进行跟踪和管理。
可以像bug管理或者TiDD的ticket一样使用,每当进行Pull Request的同时,会创建一个Issue。
每一个功能更改或修正都对应一个Issue,讨论或修正都是以Issue为中心,只要查看Issue,
就能知道相关的一切信息,并以此进行管理
提交信息中写上Issue的ID(例如,#7),自动生成从Issue到对应提交的链接。
wiki
通过wiki功能,任何人都能随时对一片文章进行更改并保存,这样就支持多人共同完成一篇文档或手册。
另外,wiki也是仓库进行版本管理的,改版的历史记录会被切实保存下来。
Pull Request及评论功能
开发者向github推送更改或功能后,可通过Pull Request功能向仓库管理者提交申请,
请求对方合并。请求送出后,管理者能查看申请内容及其中包含的代码更改比对,
同时,github提供对Pull Request进行评论的功能,以行为单位对源代码进行评论,让程序员高效交流。