我们先做个对比就是“集中化版本控制系统”和“分布式版本控制系统”。
集中化版本控制系统
(Centralized Version Control Systems简称:CVCS)诸如 CVS,Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
image.png
好处
1.每个人都可以在一定程度上看到项目中的其他人正在做些什么。
2.管理员也可以轻松掌控每个开发者的权限。
3.并且管理一个 CVCS 要远比在各个客户端上维护本地数据库来得轻松容易。
缺点
1.中央服务器的单点故障。如果宕机谁都无法提交更新,也就无法协同工作。
2.中央服务器的磁盘发生故障,碰巧没做备份,或者备份不够及时,就还是会有丢失数据的风险。
3.最坏的情况是彻底丢失整个项目的所有历史更改记录,而被客户端 提取出来的某些快照数据除外,但这样的话依然是个问题,你不能保证所有的数据都已经有人事先完整提取出来过。
分布式版本控制系统:
( Distributed Version Control System,简称 DVCS )面世了。在这类系统中,像 Git,Mercurial,Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜 像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。
工作方式:
Git 并不保存这些前后变化的差异数据。实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接。
Git 的工作方式如图所示:
image.png优势:
1.在 Git 中的绝大多数操作都只需要访问本地文件和资源,不用连网。
2.本地就是一个完整的代码仓库,可独立工作。
3.由于代码是分布式,即使服务器磁盘故障也不会丢代码。
4.历史修改该记录可完整保存。
总结:
两相对比胜负已出,显然分布式版本控制系统更如人意。而Git又是开源免费的自然是我们的不二之选。
网友评论