分布式版本控制Git
首先恭喜一下Git越来越有名了,很多有名的开源项目开始使用git做版本控制,如ROR等。我已经在项目中用了git一段时间,感觉快速且操作简单,况且由于某些原因源码不便放到svn服务器。Git成了这种情况下良好的选择。
记得之前讲过Git的基本用法,但是对Git这个分布式的版本控制没有做过多概念上的说明,这里就来比较下几类版本控制技术的区别:
本地版本控制(Local Version Control System):简单的说,就是仓库(repository,众多文档版本的集合)存放在本地,工作文档也是在本地。这类方式不用服务器,缺点也很明显,不便于多人配合开发。

中心化的版本控制(Centralized Version Control System):相比于上一种,这类方式注重协同开发,因此将仓库放到中心服务器上,便于数据管理和访问控制。经典的SVN就是这类。

分布式的版本控制(Distributed Version Control System):应该说,上面一种已经够完美了(至少我一直是这么认为了)。可惜数据太集中也有隐患,比如服务器down掉,就不能工作了,另外断网的情况下也不行。分布式就用来解决这种问题,Git属于这类。它的特点是本地完全的copy服务器的数据(包括所有的版本),即使在服务器不能使用的情况下,本地依然可以commit和checkout,甚至回复或者重建服务器上的仓库。


