SVN 与Git的区别
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的区别的更多相关文章
- svn和git的区别及适用场景
svn和git的区别及适用场景 来源 https://blog.csdn.net/wz947324/article/details/80104621 svn的优势: 优异的跨平台支持,对windows ...
- 版本控制系统之SVN和GIT的区别
版本控制器的作用: 1. 可以协同代码管理,让多人开发代码得以实现. 2. 回归到以前的任何一个时间点的代码处(好比:开始写了很多代码,后面有修改了一些,突然IDE崩溃,但是发现还是以前的代码更好,这 ...
- Svn与Git的区别
把第一条理解到位思想到位了做起来才会有的放矢,其他几条都是用的时候才能体会到 1) 最核心的区别Git是分布式的,而Svn不是分布的.能理解这点,上手会很容易,声明一点Git并不是目前唯一的分布式版本 ...
- SVN和Git 介绍,区别,优缺点以及适用范围
SVN是Subversion的简称,是一个开放源代码的版本控制系统,支持大多数常见的操作系统.作为一个开源的版本控制系统,Subversion管理着随时间改变的数据.这些数据放置在一个中央资料档案库( ...
- 话说Svn与Git的区别
这篇主要是谈谈两者的区别,至于谁优谁劣看官自己思考吧! 把第一条理解到位思想到位了做起来才会有的放矢,其他几条都是用的时候才能体会到 1) 最核心的区别Git是分布式的,而Svn不是分布的.能理解这点 ...
- svn 和 git的区别
1.速度: 克隆一份全新的目录,以同样拥有五个(才五个)分支来说,SVN是同时复製5个版本的文件,也就是说重复五次同样的动作.而Git只是获取文件的每个版本的元素,然后只载入主要的分支(master) ...
- SVN和Git的区别
这个地方就简单介绍一下 svn 的模式是: 1.写代码. 2.从服务器拉回服务器的当前版本库,并解决服务器版本库与本地代码的冲突. 3.将本地代码提交到服务器. Git分布式版本管理的模式是: 1.写 ...
- svn 跟 git的区别
1.svn是集中式版本控制系统,git是分布式版本控制系统 2.svn是直接与服务器进行交互,git是将文件存到本地然后再推送到服务器 3.svn必须在连网的情况下工作,git可以不连网开发 4.sv ...
- SVN和GIT
一.SVN SVN使用起来还是比较简单的,我使用的SVN小乌龟版本是1.1的.(SVN已经可以正常使用了) 先说下自己了解的SVN流程吧,可能比较简单,不过这个也是实际的使用情况,忽略了很多其他功能( ...
随机推荐
- Flask第三篇——安装Flask
现在我们来安装Flask: Windows系统安装Flask 如果你的系统是Windows,那安装起来非常方便——pip install flask Mac系统安装Flask Mac安装Flask一般 ...
- [BZOJ2115][WC2011]最大XOR和路径
bzoj luogu sol 首先很显然的,答案等于1到n的任意一条路径的异或和与若干个环的异或和的异或和. 因为图是联通的,那么就可以从一个点走到任意一个想要走到的环上,走完这个环后原路返回,那么中 ...
- ballerina 学习十 streams
ballerina 的streams 使用的是siddhi complex event processing 引擎处理,可以包含的语法有 projection filtering windows jo ...
- flash无法导入mp3文件
用全能音频转换通转换下,一切采用默认即可,点击下载地址 这个软件真心好用. 把mp3拖入其中,点击批量转换,参数默认,即可.
- Linux之 手动释放内存
我们在进程中要怎样去描述一个文件呢?我们用目录项(dentry)和索引节点(inode).它们的定义如下: 所谓"文件", 就是按一定的形式存储在介质上的信息,所以一个文件其实包含 ...
- Linux 内核源码目录结构
arch:包含和硬件体系结构相关的代码,每种平台占用一个相应的目录. block:块设备驱动程序 I/O 调度. crypto:常用加密和散列算法(如AES.SHA等),还有一些压缩和CRC校验算法. ...
- 空间的搜索与R树
在现实地图应用中,有个比较常见的问题,比如,你到了一个地方,想查查附近1km内有什么饭店. 这时地图应用就可以马上查询出周围有什么饭店,如果让你设计,你会怎么设计.假设局限在中国的地图上,共有1000 ...
- ShowDialog窗体的return问题
最近的一个项目里,打开新窗口用到了ShowDialog()这种方式,发现在新窗口做保存操作的时候,保存按钮事件下的程序执行完(无论有没有return)都会关闭子窗口. 网上查了一下,发现大家说的方法在 ...
- Python库-re(正则表达式)
re库是python的一个标准库,不需要自己用pip额外下载,直接调用即可. 下面介绍以下库中函数的作用. 1.re.compile(patter, flags=0) patter是一个正则表达式字符 ...
- mac 电脑下添加 HTMLtestrunner.py 生成 报表
HTMLTestRunner是Python标准库unittest模块的一个扩展.它生成易于使用的HTML测试报告. 1.下载HTMLTestRunner.py模块地址 http://tungwaiyi ...