Git和SVN

来源:互联网 发布:熊猫为什么是国宝 知乎 编辑:程序博客网 时间:2024/06/05 09:44

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。

Git和SVN的主要区别是:Git是分布式的,而SVN不是。
分布式和集中式的最大区别在于开发者可以本地提交。每个开发者机器上都有一个服务器的数据库。
Git跟SVN一样有自己的集中式版本库或服务器。但Git更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上克隆代码后会在自己的机器上克隆一个自己的版本库。这样,在一个没有网络的地方你仍然可以提交代码,查看历史记录,创建项目分支。
Git由于是分布式的,所以它的安全性相对于集中式就会弱一点,用户可以clone下所有代码,并发布。
Git适合于用户量很多的项目,两个用户之间的冲突解决很容易。
SVN代码集中管理,所以代码的一致性就相对较高,安全性也略胜一筹,但不适合开发人员较多的项目,且可能发生数据库暴增的情况。

GIT把内容按元数据方式存储,而SVN是按文件:
所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。如果你把.git目录的体积大小跟.svn比较,你会发现它们差距很大。因为,.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。

GIT的内容完整性要优于SVN:
GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。