文档介绍:Git诞生阅读:567484大家全部知道,Linus在1991年创建了开源Linux,以后,Linux系统不停发展,已经成为最大服务器系统软件了。Linus即使创建了Linux,但Linux壮大是靠全世界热心志愿者参与,这么多人在世界各地为Linux编写代码,那Linux代码是怎样管理呢?事实是,在以前,世界各地志愿者把源代码文件经过diff方法发给Linus,然后由Linus本人经过手工方法合并代码!你可能会想,为何Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些无偿版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式版本控制系统不仅速度慢,而且必需联网才能使用。有部分商用版本控制系统,即使比CVS、SVN好用,但那是付费,和Linux开源精神不符。不过,到了,Linux系统已经发展了十年了,代码库之大让Linus极难继续经过手工方法管理了,小区弟兄们也对这种方法表示了强烈不满,于是Linus选择了一个商业版本控制系统BitKeeper,BitKeeper东家BitMover企业出于人道主义精神,授权Linux小区无偿使用这个版本控制系统。安定团结大好局面在就被打破了,原因是Linux小区牛人聚集,不免沾染了部分梁山好汉江湖****气。开发SambaAndrew试图破解BitKeeper协议(这么干其实也不只她一个),被BitMover企业发觉了(监控工作做得不错!),于是BitMover企业怒了,要收回Linux小区无偿使用权。Linus能够向BitMover企业道个歉,确保以后严格管教弟兄们,嗯,这是不可能。实际情况是这么:Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!30天之内,Linux系统源码已经由Git管理了!牛是怎么定义呢?大家能够体会一下。Git快速成为最流行分布式版本控制系统,尤其是,GitHub网站上线了,它为开源项目无偿提供Git存放,无数开源项目开始迁移至GitHub,包含jQuery,PHP,Ruby等等。历史就是这么偶然,假如不是当年BitMover企业威胁Linux小区,可能现在我们就没有无偿而超级好用Git了。集中式vs分布式阅读:549874Linus一直痛恨CVS及SVN全部是集中式版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区分呢?先说集中式版本控制系统,版本库是集中存放在中央服务器,而干活时候,用全部是自己电脑,所以要先从中央服务器取得最新版本,然后开始干活,干完活了,再把自己活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必需先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。集中式版本控制系统最大毛病就是必需联网才能工作,假如在局域网内还好,带宽够大,速度够快,可假如在互联网上,碰到网速慢话,可能提交一个10M文件就需要5分钟,这还不得把人给憋死啊。那分布式版本控制系统和集中式版本控制系统有何不一样呢?首先,分布式版本控制系统根本没有“中央服务器”,每个人电脑上全部是一个完整版本库,这么,你工作时候,就不需要联网了,因为版本库就在你自己电脑上。既然每个人电脑上全部有一个完整版本库,那多个人怎样协作呢?比方说你在自己电脑上改了文件A,你同事也在她电脑上改了文件A,这时,你们俩之间只需把各自修改推送给对方,就能够相互看到对方修改了。和集中式版本控制系统相比,分布式版本控制系统安全性要高很多,因为每个人电脑里全部有完整版本库,某一个人电脑坏掉了不要紧,随便从其它人那里复制一个就能够了。而集中式版本控制系统中央服务器要是出了问题,全部些人全部没法干活了。在实际使用分布式版本控制系统时候,其实极少在两人之间电脑上推送版本库修改,因为可能你们俩不在一个局域网内,两台电脑相互访问不了,也可能今天你同事病了,她电脑压根没有开机。所以,分布式版本控制系统通常也有一台充当“中央服务器”电脑,但这个服务器作用仅仅是用来方便“交换”大家修改,没有它大家也一样干活,只是交换修改不方便而已。当然,Git优势不单是无须联网这么简单,后面我们还会看到Git极其强大分支管理,把SVN等远远抛在了后面。CVS作为最早开源而且无偿集中式版本控制系统,直到现在还有不少人在用。因为CVS本身设计问题,会造成提交文件不完整,版本库莫名其妙损坏情况。一样是开源而且无偿SVN修正了CVS部分稳定性问题,是现在用得最多集中式版本库控制系统。除了无偿外,还有收费集中式版本控制系统,比如IBMClearCase(以前是Rational企业,被IBM收购了),特点是安装比Windows还大,运行比蜗牛还慢,能用ClearCase通常是世界500强,她们有个共同特点是财大气粗,或人傻钱多。微软自己也有一个集中式版本控制系统叫V