Svn:
集中化的版本控制系统存储,有一个单一的集中管理服务器保存所有文件的修订版本而协同工作的人都通过客户端连接到这台服务器,取出最新文件或者提交更新,多年以来,这已成版本控制系统的标准做法.
这种做法带来了许多好处,每个人都可以一定程度上看到项目中的其他人在做什么,而管理员也可以轻松掌握每个开发者的权限,并且管理一个集中化的版本控制系统.
缺点:
服务器宕机: 员工写的代码得不到保障
服务器挂了:整个项目的历史记录都会丢失
Git:
客户端并不只是提取客户端最新版本的快照,而是把代码仓库完整的镜像下来.这么一来任何一处协同工作的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库进行恢复.因为每一次提取操作,实际上都是对代码仓库的一次完整备份
许多这类系统都可以指定和若干个不同的远端代码仓库进行交互.这样你就可以在用一个项目中分别和不同工作小组的人相互合作
分布试的版本管理系统在管理项目的时,存放的不是项目版本与版本之间的差异,它存的是索引(
所需磁盘空间很少,所以每个客户端用户都可以放下整个项目的历史记录
)