GIT 版本版本管理工具

一.Git是什么

一言以蔽之:版本控制工具。Git是目前世界上最先进的分布式版本控制系统(没有之一)。

这个软件用起来就应该像这个样子,能记录每次文件的改动
GIT 版本版本管理工具
这样,你就结束了手动管理多个“版本”的史前时代,进入到版本控制的20世纪。

二.Git发展史

cvs --svn

在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!你也许会想,为什么Linus不把Linux代码放到版本控制系系统呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对 CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和 Linux的开源精神不符。

Linus花了两周时间用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!Git迅速成为最流⾏的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移到GitHub,包括jQuery,PHP,Ruby等等。

三.Git运行方式

1.集中式VS分布式

Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制

(1)集中式版本控制系统,

版本库是集中存放在*服务器的,你干活的时候,用的都是自己的电脑,所以要先从 *服务器取得最新的版本,然后开始干
活,干完活了,再把自己的活推送给*服 务器。*服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后
回到家自己改,改完了,再放回图书馆。集中式版本控制系统最大的弊端就是必须联网才能工作,如果在局域网内还好,速度够快,可如果在互联网上,遇到网速慢的话,可 能提交个10M的文件就需要5分钟,这还不得把人给憋死啊。

(2)分布式版本控制系统

根本没有“*服务器”,每个⼈的电脑上都是一个完整的版本库,这 样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个认电脑上都有个完整的版 本库,那多个人如何协作呢?比如说你在自己电脑上改了文件A,你的同事也在他的 电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到 对方的修改了。和集中式版本控制系统相比,分布式版本控制系统的安全性要好很多,因为每个电脑里都有完整的版本库,某个人的电脑坏掉了不要紧,而集中式版本控制 系统的*服务器要是出了问题,所有人都没法干活了

git运行方式如图

GIT 版本版本管理工具