目录

SVN和GIT有哪些区别

SVN和GIT的区别是:1、模式不同;2、存储方式不同;3、版本号不同;4、分支不同。SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

一、SVN和GIT的区别

1、模式不同

GIT是分布式的,SVN不是,这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。

GIT跟SVN一样有自己的集中式版本库或服务器。但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。

因为每一个开发人员的电脑上都有一个Local Repository,所以即使没有网络也一样可以Commit,查看历史版本记录,创建项目分支等操作,等网络再次连接上Push到Server端。

2、存储方式不同

GIT把内容按元数据方式存储,而SVN是按文件。

因为,GIT目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。.GIT目录的体积大小跟.SVN比较,你会发现它们差距很大。

3、版本号不同

GIT版本号是全球少数的,而SVN版本号是全局少数的。

在使用中,发现,每次对整个目录进行提交,SVN是把所有文件无论有无更新都打上版本号,而GIT则只是对更新文件进行打版本号。

4、分支不同

分支在SVN中一点不特别,就是版本库中的另外的一个目录。如果你想知道是否合并了一个分支,你需要手工运行像这样的命令svn propget svn:mergeinfo,来确认代码是否被合并。所以,经常会发生有些分支被遗漏的情况。

然而,处理GIT 的分支却是相当的简单和有趣,你可以从同一个工作目录下快速的在几个分支间切换。你很容易发现未被合并的分支,你能简单而快捷的合并这些文件。因为git是基于差异来管理分支的,其分支的代价极小。

延伸阅读:

二、什么是SVN

SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

SVN的全称式Subversion,即版本控制系统。它是最流行的一个开放源代码的版本控制系统。作为一个开源的版本控制系统,Subversion管理随着时间改变的数据。这些数据放置在一个中央资料档案库中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样可以把档案恢复到旧的版本,或是浏览文件的变动历史。Subversion是一个通用的系统,可以用来管理任何类型的文件,其中包括程序源代码。

SVN采用客户端/服务端体系也就是我们常说的(C/S架构),项目的各种版本都存储在服务器上,程序开发人员首先将从服务器上获得一份项目的最新版本,并将其复制到本机,然后再此基础上,每个开发人员可以再自己的客户端进行独立的开发工作,并且可以随时将新代码提交给服务器。当然也可以通过更新操作获取服务器上的最新代码,从而保持与其他开发者所使用版本的一致性。

SVN的客户端有两类,一类是基于Web的WebSVN等,另一类是以Tortoise SVN为代表的客户端软件。前者需要Web服务器的支持,后者需要在本地安装客户端,两种都有免费的开源软件供使用。SVN存储版本数据也有两种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的储存系统)

以上就是关于SVN和GIT的区别的内容了,希望对大家有帮助。

一站式研发项目管理平台 PingCode

一站式研发项目管理平台 PingCode

支持敏捷\瀑布、知识库、迭代计划&跟踪、需求、缺陷、测试管理,同时满足非研发团队的流程规划、项目管理和在线办公需要。