Git简介

Git是目前世界上最先进的分布式版本控制系统,由Linux开源社区开发,最初设计摸底是为了方便管理Linux内核的开发。大型开源项目linux kernelAndroidchromiummonodotnetUE4等都使用Git管理项目

版本控制系统

如果你用Word写过长篇文稿,那你一定有这样的经历:修改了其中一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改下去,最后你的Word文档就会产生很多副本。然后过了一周,你突然想找回被修改的文字,但已经记不清修改前保存在哪个文件里了,只好一个一个文件去找,焦躁并且愤怒着。
看着桌面一堆乱七八糟的文件,想保留最新的一个,然后把其他的删掉,又怕哪天会用上,还不敢删,心情郁闷。如果有些部分需要你的财务同事帮助填写,于是你把文件Copy到U盘里给她(也可能通过Email发送一份给她),然后,你继续修改Word文件。一天后,同事再把Word文件传给你,此时,你必须想想,发给她之后到你收到她的文件期间,你和她作了哪些改动,得把你的改动和她的部分合并,这样效率就低了很多。
于是你期望,如果有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便?这样就出现了版本控制系统,用于记录文件的每次操作。
【图片】

集中式版本控制系统

最早出现的是集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,就会受限于互联网网速,当工程比较大时,这种方法就会严重滞后系统开发速率。

分布式版本控制系统

那分布式版本控制系统与集中式版本控制系统有何不同呢?首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

集中式和分布式各自的产品
集中式

免费:CVS作为最早的开源而且免费的集中式版本控制系统,直到现在还有不少人在用。由于CVS自身设计的问题,会造成提交文件不完整,版本库莫名其妙损坏的情况。同样是开源而且免费的SVN修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制系统。
收费 :比如IBM的ClearCase(以前是Rational公司的,被IBM收购了),微软的VSS等

分布式

促使Git诞生的BitKeeper外,还有类似Git的Mercurial和Bazaar等。这些分布式版本控制系统各有特点,但最快、最简单也最流行的依然是Git!

集中式VS分布式

和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。
在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

Git由来

Git 在设计之初就制订了若干目标:速度 、 简单的设计 、 对非线性开发模式的强力支持(允许上千个并行开发的分支)、完全分布式、有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)。Git 和其他版本控制系统(如 CVS)有不少的差别,Git 本身关心文件的整体性是否有改变,但多数的 CVS 或 SVN(Subversion的简称) 系统则在乎文件内容的差异。因此 Git 更像一个文件系统,直接在本机上获取数据,不必连接到主机端获取数据。
自诞生于 2005 年以来,Git 日臻成熟完善,迅速成为最流行的分布式版本控制系统,在高度易用的同时,仍然保留着初期设定的目标。它的速度飞快,极其适合管理大项目,它还有着令人难以置信的非线性分支管理系统,可以应付各种复杂的项目开发需求。2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

Git优点

相比集中式控制版本,Git有如下几个优点:

  1. 本地是版本库的完整镜像,因此支持离线工作
  2. 绝大多数操作都只需要访问本地文件和资源,而且与每个提交都是所有文件的完整副本,因此速度非常快。(PS:SVN等集中式版本控制系统存储每个文件与初始化版本的差异,而Git每个提交都是所有文件的完整副本,使得Git在回溯到某个提交时,不会对所有文件执行差异计算还原,因此速度会非常快)
  3. 强大快捷的分支功能,非常适合非线性开发过程。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值