1:最主要的区别是Git是分布式版本控制系统,而SVN是集中式的版本控制系统。能理解这一点,区别它们就会容易很多,Git并不是目前唯一的分布式版本控制系统,比如还有Mercurial等。不过话说回来Git跟Svn一样有自己的集中式版本库和Server端,但Git更倾向于分布式开发,因为每一个开发人员的电脑上都有一个本地仓库(Local Repository)所以即使没有网络也一样可以提交(Commit),查看历史版本记录,创建项目分支等操作,等网络再次连接上push到Server端

  这样看来Git相比较Svn有很大的优势,但是Git却增加了不少复杂性,因为需要创建两个仓库(Repositories)本地仓库(Local Repositories)& 远程仓库(remote Repositories),指令很多,除此之外你需要知道哪些制定在本地仓库用,哪些指令在远程仓库

  2:Git把内容按元数据方式存储,而Svn是按文件,因为Git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,比如标签、分支、版本记录等,Git目录的体积大小跟Svn比较,你会发现它们差距很大。

  3:Git没有一个全局的版本号,而Svn有。

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

  5:Git下载下来后,在离线状态下可以看到所有的Log,而Svn不可以

  6:Svn必须先Update才能Commit,忘记合并时会出现一些错误,Git还是比较少的出现这种情况。

  7:版本库:Svn只能有一个指定中央版本库,当这个中央版本库有问题时,所有工作成员都一起瘫痪直到版本库维修完毕或者新的版本库设立完成,而Git可以有无限个版本库。或者,更正确的说法,每一个Git都是一个版本库,区别是它们是否拥有活跃目录(Git Working Tree).如果主要版本发生了什么事情,工作成员仍然可以在自己的本地版本库提交,等待主要版本库恢复即可,工作成员也可以提交到其他的版本库!

  8:分支:在Svn,分支是一个完整的目录,且这个目录拥有完整的实际文件,如果工作成员想要开启新的分支,那将会影响所有人,每个人都会拥有和你一样的分支,如果你的分支用来进行一些破坏性工作,那将会像传染病i一样,你改一个分支,还得让其他人重新切分支重新下载。而Git每个工作成员可以任意在自己的本地版本库开启无限个分支。例如:我想尝试破坏自己的程序,并且想保留这些被修改的文件供以后使用,我可以开一个分支,做我喜欢的事情,完全不需担心妨碍其他工作成员,只要我不合并以及提交到主要版本库,没有一个工作成员会被影响,等到我不需要这个分支的时候,我只要把它从我的本地版本库删除即可。

  Git的分支名是可以使用不同名字的,例如,我本地分支名为test,而在主要版本库的名字其实是Master。

  值得一提的是,我可以在Git的任意一个提交点开启分支。

  9:提交:在Svn,当你提交你的代码时,他将直接记录到中央版本库,当你发现你的代码存在严重问题时候,你已经无法阻止事情的发生,如果网络中断的时候,你根本没有办法提交,而Git的提交完全属于本地版本库的活动,而你只需push到主要版本库即可,Git的push其实是在执行同步(Sync)

SVN 与Git的区别的更多相关文章

  1. svn和git的区别及适用场景

    svn和git的区别及适用场景 来源 https://blog.csdn.net/wz947324/article/details/80104621 svn的优势: 优异的跨平台支持,对windows ...

  2. 版本控制系统之SVN和GIT的区别

    版本控制器的作用: 1. 可以协同代码管理,让多人开发代码得以实现. 2. 回归到以前的任何一个时间点的代码处(好比:开始写了很多代码,后面有修改了一些,突然IDE崩溃,但是发现还是以前的代码更好,这 ...

  3. Svn与Git的区别

    把第一条理解到位思想到位了做起来才会有的放矢,其他几条都是用的时候才能体会到 1) 最核心的区别Git是分布式的,而Svn不是分布的.能理解这点,上手会很容易,声明一点Git并不是目前唯一的分布式版本 ...

  4. SVN和Git 介绍,区别,优缺点以及适用范围

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,支持大多数常见的操作系统.作为一个开源的版本控制系统,Subversion管理着随时间改变的数据.这些数据放置在一个中央资料档案库( ...

  5. 话说Svn与Git的区别

    这篇主要是谈谈两者的区别,至于谁优谁劣看官自己思考吧! 把第一条理解到位思想到位了做起来才会有的放矢,其他几条都是用的时候才能体会到 1) 最核心的区别Git是分布式的,而Svn不是分布的.能理解这点 ...

  6. svn 和 git的区别

    1.速度: 克隆一份全新的目录,以同样拥有五个(才五个)分支来说,SVN是同时复製5个版本的文件,也就是说重复五次同样的动作.而Git只是获取文件的每个版本的元素,然后只载入主要的分支(master) ...

  7. SVN和Git的区别

    这个地方就简单介绍一下 svn 的模式是: 1.写代码. 2.从服务器拉回服务器的当前版本库,并解决服务器版本库与本地代码的冲突. 3.将本地代码提交到服务器. Git分布式版本管理的模式是: 1.写 ...

  8. svn 跟 git的区别

    1.svn是集中式版本控制系统,git是分布式版本控制系统 2.svn是直接与服务器进行交互,git是将文件存到本地然后再推送到服务器 3.svn必须在连网的情况下工作,git可以不连网开发 4.sv ...

  9. SVN和GIT

    一.SVN SVN使用起来还是比较简单的,我使用的SVN小乌龟版本是1.1的.(SVN已经可以正常使用了) 先说下自己了解的SVN流程吧,可能比较简单,不过这个也是实际的使用情况,忽略了很多其他功能( ...

随机推荐

  1. php序号发生器,数字重组,可以隐藏原来的1,2,3。。。

    一个晚上的成果,原理: 将1,2,3,4,5,6,7,8,9,0映射到9,5,1,0,4,8,7,3,2,6 同理映射base,base有1-10种数组,也就是可以一位数到10位数 $base 实际上 ...

  2. FreeMarker自定义TemplateDirectiveModel

    [参考:http://blog.csdn.net/fangzhangsc2006/article/details/8687371] 在采用FreeMarker做前台视图模板的情况下,我们可以通过< ...

  3. 何时使用padding和margin

    先看看这张图: 重点其实是background-image CSS边距属性定义元素周围的空间.通过使用单独的属性,可以对上.右.下.左的外边距进行设置.也可以使用简写的外边距属性同时改变所有的外边距. ...

  4. jQuery 异步和同步请求

    在jQuery Ajax里面有一个async 参数 , 默认值 为true , 请求为异步请求 , false 为同步请求 .. 使用ajax加载数据返回页面并赋值,然后前端取出该值 这其中涉及到代码 ...

  5. 《DSP using MATLAB》示例Example 8.9

  6. Oracle数据库安装完成后相关问题的解决

    笔者一直以来都是使用公司服务器上的oracle数据库,突然一天公司服务器宕机了,项目无法访问数据库跟着瘫痪了,所以准备在自己的机器上安装一个oracle数据库. 从官网下载安装了oracle 11g后 ...

  7. BZOJ4565 [Haoi2016]字符合并

    题意 有一个长度为\(n\)的\(01\)串,你可以每次将相邻的\(k\)个字符合并,得到一个新的字符并获得一定分数.得到的新字符和分数由这\(k\)个字符确定.你需要求出你能获得的最大分数. \(n ...

  8. elixir jenkins 集成构建方式配置

    备注:    主要问题是环境变量配置的问题,解决方法是使用软连接进行解决   1. 下载软件包 wget https://github.com/elixir-lang/elixir/releases/ ...

  9. sysbench fileio 压力测试

    备注:   使用的是yum 安装   1. 安装 yum install -y sysbench 2. 命令 fileio options: --file-num=N number of files ...

  10. Arrays--codility

    lesson 2: Arrays exercise: Problem: Given array A consisting of N integers, return the reversed arra ...