Git和SVN的比较

来源:互联网 发布:淘宝头条写手工资 编辑:程序博客网 时间:2024/04/24 22:35

最近在学习搭建git服务器,也具体学习下了git相关知识。因而有想和svn想比较下。

在以前不同公司都有使用过git和svn,个人感觉都还挺方便的。具体到工具的整体性,没有深究,简单总结下个人对这两工具的看法。有不足的地方,请多多指教

1.Git是分布式的,svn不是

Git部分

一般来说,Git是分布式的,但还是会有一个Git中央服务器。开发人员下载代码的时候,会克隆一个版本库在自己的电脑上。在断网的情况下,开发人员依然能够提交文件

、查看版本信息,创建分支等;而SVN在断网的情况下不能。短时间断网的话,对开发影响应该是不会很大。

重要的一点:如果中央服务器的代码库挂掉,而且不能恢复的话,Git由于在开发人员上有克隆的版本库,可以快速恢复;而SVN确不能这样

SVN部分

SVN工作必须要求联网,局域网网速快,还好说,外网的话,就看网速了。如果中央服务器出问题,对工作影响比较大。即便能快速恢复,但是也没办法查看以前版本信息

和提交记录之类的了。

网络正常的情况下,两个用起来都是挺方便的

2.Git分支和SVN分支不同

Git部分

Git分支管理很强大,可以很容易创建分支、切换分支、合并分支。

SVN部分

映像中,对SVN用的不多。在以前一个开发阶段完成后,都是打一个版本,把代码放到SVN另外一个目录中去。

3.更新提交机制不同

Git部分

Git比SVN多了一个暂存区的概念,首先,新增和修改过的文件都会先存在暂存区里面,通过commit提交到本地分支;然后,从下载代码到本地的Git库;最后,合并代码,再提交。重要的一点,本地的Git版本不是最新的话,是无法提交代码的

SVN部分

SVN没有暂存区的概念,一般commit的话,会把代码直接提交到服务器上面。如果没update代码,就commit的话,很可能发生代码覆盖的问题。

在度娘的时候,发现有一下几点的不同,但个人认为,管理工具没必要去深究,有兴趣的同学可以去看一下

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

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

5.GIT没有一个全局的版本号,而SVN有

目前为止这是跟SVN相比GIT缺少的最大的一个特征

6.GIT的内容完整性要优于SVN

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

0 0