很多人都知道,Linus在1991年创建了开源的Linux.从此,Linux系统不断发展,已经成为最大的服务器系统软件了.Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码, 那Linux的代码是如何管理的呢?
事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用.有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符.
不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统.
安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气.开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权.
Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的.实际情况是这样的:
Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。
Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了(github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开),它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括 jQuery,PHP,Ruby等等。
历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了.
今天,GitHub已是:
一个拥有143万开发者的社区,其中不乏Linux发明者Torvalds这样的顶级黑客,以及Rails创始人DHH这样的年轻极客.
这个星球上最流行的开源托管服务,目前已托管431万git项目,不仅越来越多知名开源项目迁入GitHub,比如Ruby on Rails、jQuery、Ruby、Erlang/OTP;近三年流行的开源库往往在GitHub首发,例如:BootStrap、Node.js、CoffeScript等。
alexa全球排名414的网站。

最新文章

  1. 背水一战 Windows 10 (11) - 资源: CustomResource, ResourceDictionary, 加载外部的 ResourceDictionary 文件
  2. 看着水了一天的群,终于看到一段高质量的代码了分享一下localStorage
  3. codevs1403 新三国争霸
  4. 使用EF自带的EntityState枚举和自定义枚举实现单个和多个实体的增删改查
  5. grub4dos
  6. poj 2559 单调栈 ***
  7. linux笔记:linux常用命令-关机重启命令
  8. MySQL备份的shell脚本
  9. struts2与spring mvc 的比较
  10. CAS单点登录(SSO)完整教程
  11. HDU2191:悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
  12. [BZOJ 1095] [ZJOI 2007] 捉迷藏
  13. 如何巧妙的使用ArrayList的Clone方法
  14. 小白的python之路10/31&11/1文件操作系统
  15. 高通平台如何使用QPST抓DUMP
  16. ESLint + lint-staged 禁用老项目中的es6
  17. python3.X出现关于模块(i18n)的不能使用的解决方法
  18. 【bzoj1758】 Wc2010—重建计划
  19. C++程序设计入门(上) 函数学习
  20. 19.并发容器之BlockingQueue

热门文章

  1. 动易cms .net版本后台拿shell
  2. /proc/interrupts 和 /proc/stat 查看中断的情况
  3. NAT and Traversal NAT(TURN/STUN/ICE)
  4. 模板题 + KMP + 求最小循环节 --- HDU 3746 Cyclic Nacklace
  5. ubuntu 安装dlib 出现dlib.so: undefined symbol: png_set_longjmp_fn
  6. Thinkphp整合各个功能
  7. 1-1、superset开发环境搭建
  8. Java知识点梳理——集合
  9. 『SharePoint 2010』Sharepoint 2010 Form 身份认证的实现(基于SQL)
  10. 比较好用的Opera 翻译工具 ddict