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---文件上传与下载

    转自http://www.cnblogs.com/lazycat-cz/p/4113037.html 安全性能---水平不够 ╮(╯_╰)╭ 文件上传--->就是将本地的文件上传到服务器上.(H ...

  2. CodeForces - 321E:Ciel and Gondolas (四边形不等式优化DP)

    题意:N个人排成一行,分成K组,要求每组的不和谐值之和最小. 思路:开始以为是斜率优化DP,但是每个区间的值其实已经知道了,即是没有和下标有关的未知数了,所以没必要用斜率. 四边形优化. dp[i][ ...

  3. HDU2157 How many ways矩阵再识

    春天到了, HDU校园里开满了花, 姹紫嫣红, 非常美丽. 葱头是个爱花的人, 看着校花校草竞相开放, 漫步校园, 心情也变得舒畅. 为了多看看这迷人的校园, 葱头决定, 每次上课都走不同的路线去教室 ...

  4. windows上安装Gradle并配置环境变量

    安装Gradle 下载Gradle,然后配置运行环境就可以了,有一点要注意的是gradle使用的是Groovy语言,而这个语言依赖于java,因此你必须安装配置java环境. 首先下载gradle,我 ...

  5. linux自学(八)之开始centos学习,安装tomcat

    上一篇:linux自学(七)之开始ccentos学习,安装jdk 由于tomcat小,我们直接使用在线下载然后解压形式 首先,进入cd /usr/local目录下并创建tomcat目录,把tomcat ...

  6. Java并发--synchronized

    以下是本文的目录大纲: 一.什么时候会出现线程安全问题? 二.如何解决线程安全问题? 三.synchronized同步方法或者同步块 转载原文链接:http://www.cnblogs.com/dol ...

  7. UVA11401 Triangle Counting

    题意 输入\(n\),输出有多少种方法可以从\(1,2,3,\dots,n\)中选出3个不同的整数,使得以他们为三边长可以组成三角形. \(n \leq 10^6\) 分析 参照刘汝佳的题解. 按最大 ...

  8. springboot: 集成jdbc

    1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www ...

  9. 亚马逊MWS开发套路演示

    MWS是商城网络服务的缩写,具体介绍看这里http://docs.developer.amazonservices.com/zh_CN/dev_guide/DG_IfNew.html.MWS就是一组A ...

  10. atoi函数的实现——面试

    主要考虑,字符串中是否有非法字符,字符串是否有溢出控制 #include<stdio.h> int myatoi(const char *str){ ,ret=,i=; if(str[i] ...