据TechCrunch报道,风险投资集团Andreessen Horowitz近日宣布将在本周向GitHub投资一亿美元。这笔投资不管对Andreessen Horowitz来说,还是对GitHub来说,都是非常重要的。
但GitHub究竟是什么?为什么开发者们都对它如此的兴奋?或许你听过GitHub大概是一个源代码分享和托管服务,或这是一个属于程序员的网站。两个说法都正确,但它们都没有准确的说出GitHub的特别之处。
GitHub的核心是Git,Git是Linux之父Linus Torvalds于2005年开发的一个开源的版本控制系统。MatthewMcCullough,GitHub的员工之一,解释到:Git就像其他版本控制系统一样,可以管理和存储软件项目的代码。不同的是虽然它为管理代码而生,但它也可以管理其他文档,例如大家熟知的Word文档等,所以,你也可以把它看做是一个档案系统,每一个文档从起草到最终定稿都可以在上面进行。
Git不是第一个这样的系统,在这之前还有 CVS和Subversion等,这些系统的共同之处是,每个项目都有一个“中央存储库”,不同的是开发者对源码做出的修改CVS和Subversion都是实时递交的,直接写入到中心存储库中。而Git采用的是分布式的存储方式,也就是每个开发者在登入系统后将会从中央存储库上克隆一个自己的版本库到个人电脑中,然后再编辑这个克隆的版本。并且你在编辑代码的时候不必实时联网,你完全可以在脱离网络的情况下写代码,查看历史版本记录,创建项目分支等等。当网络连接可用时,你编写的代码将同步到中央存储库中。这听起来似乎没多大用处,但当你处在无网络的环境时,这个将解决你的大麻烦。
而GitHub是一个基于Git系统开发的,面向开源及私有软件项目的托管平台,只支持Git作为唯一的版本库格式进行托管,所以叫GitHub。虽然是基于Git的,但GitHub拥有众多自己独有的特性,Git是一个命令行工具,但GitHub提供图形化的操作界面。还有如访问权限控制和一些wiki说明,基于每个项目的任务管理工具等等协作工具。
GitHub众多优秀的特性中,最杰出的一个要数“forking”(派生)了,当你发现一个项目非常有趣,你想加入其中,但你又不是该项目的成员,没有对该项目的写入和修改权限时,怎么办?你可以点击“fork”,系统会在你的账户下生成该项目的一个拷贝,你对它拥有完全的读写权限,当你编写完后,如果你想贡献代码到源项目中,你可以向开发团队发送一个叫“pull request”的请求,通过审核后,你的代码将直接合并到原项目中。
派生,pull request和合并——这三个特性使得GitHub在同类服务中出类拔萃。想想,在没有这三个特性时,协作开发怎么运行:当你想为一个开源项目做贡献时,你需要到源码下载页手动下载源码,然后进行编辑,并手动标注修改的地方,最后列出一个清单,然后打包成一个“补丁”,再将这个“补丁”用邮件发给开发者,开发者进行详细的比对后再决定是否合并到原项目中。
这里还有一个问题,一个开源项目,是由众多爱好者共同开发维护的,项目管理者与他们大都素未谋面,对他们的代码水平,还有是否有过不良记录等等完全不清楚,成千上万的邮件,一个一个审核,这工作量是非常巨大的。有了GitHub,这一切问题迎刃而解,在GitHub中,当收到pull request时,你可以很方便的看到这个开发者的各种信息,开发记录等等。对开发者来说,如果你对一个项目的编辑被采纳了,那么你在GitHub中的声望将会提高,采纳的越多,声望越高。这是一个良性循环,项目在众人的协作开发中越来越好,开发者也从中获取了行业中的声望。
除了开源项目,GitHub还提供一些针对开发商的保密项目存储服务,不过这是收费的,GitHub的运作资金完全来源于此。
自创始以来,GitHub一直依靠用户资金运作,从未接受过任何外来资金,这是GitHub引以为傲的。为什么这次引进外来资金呢?从Stash的发布或许能解释这里面的原因。企业软件工具开发商Atlassian于2010年收购了源代码托管网站BitBucket,今年年初Atlassian发布自己的源代码托管服务Stash,Stash融合了众多BitBucket和GitHub的特性,这对GitHub来说似乎是个巨大的威胁,而在收购BitBucket之前Atlassian接受了来自Accel的6000万美元投资。为了进一步强化服务,与之竞争,所以接受了此次一亿美元的投资,这大概就是GitHub破例接受外来资金的原因。
本次投资很可能将用于拓展收费服务,不过毫无疑问,GitHub的免费服务仍然是最受欢迎的。经过这些年的发展,GitHub俨然一个编程史上的亚历山大图书馆,通过它,人们能够追随那些杰出的开发者的脚步,学习他们的开发方式,观摩他们在遇到棘手问题时的解决办法。经过此次投资,GitHub的未来将会有很大的变化,但不管怎么样,即使某一天GitHub像亚历山大图书馆一样不复存在,它的副本也将永存在世界各地开发者的电脑中,这是GitHub开发团队给所有开发者留下的一份宝贵财富。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/44101.html