内容都是为了方便自己以后再翻看的时候有个记忆。
描述的有误的地方,以后再做修改。
对于SVN (Subversion),CVS(Concurrent Version System)的版本控制,他们主要是基于C/S结构(Client/Server)的,是典型的客户机和服务器的结构。
大概工作模式如下:每一个开发者都是一个客户端,可以从服务器端下载最新的代码和版本,修改后可以直接提交到服务器端。
如下图所示。

而git则不是这种模式,是一种分布式的。
对于每一个代码维护的服务器,有对应的主开发人员,只有他才有对代码的提交权限,即push权限。
对于其他开发者,从服务器下载了以后,如果要提交修改,得先向主开发者发送补丁,请求合并修改。主开发者确认该修改有效也不产生冲突后,就可以将其提交到服务器上。
大概如下图所示。

原文:http://www.cnblogs.com/xuxu-ning/p/5012818.html