001-git简介

版本控制系统(Version Control System)

目前流行的版本控制系统主要分为两种——集中式和分布式。

集中式版本控制系统

代表:SVN

集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家修改,修改完了,再放回图书馆。

  • 优点:使用简单,容易理解。
  • 缺点:受中央服务器节点影响较大,如果中央服务器出现问题,则无法使用。同时无法很好地处理多分支并行开发的情况。

分布式版本控制系统

代表:git

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

  • 优点:每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比同时在各个开发者机器上维护本地数据库来得轻松容易。
  • 缺点:必须联网才能工作,如果在本地修改,不能立即知道其他人的修改。