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流程吧,可能比较简单,不过这个也是实际的使用情况,忽略了很多其他功能( ...
随机推荐
- PCA最小平方误差理论推导
PCA最小平方误差理论推导 PCA求解其实是寻找最佳投影方向,即多个方向的标准正交基构成一个超平面. 理论思想:在高维空间中,我们实际上是要找到一个d维超平面,使得数据点到这个超平面的距离平方和最小 ...
- SQL Server 为存储过程添加预定设置注释代码
一个优秀的项目最少不了的是代码注释,兴许你是代码高手入目既知道该段代码主要功能是什么,但日子长了,记的东西多了,即时再熟悉的代码也渐渐的有点不认 识它,所以养成良好的写注释的习惯,对于自己对于他人都是 ...
- Mat代码操作
#include<opencv2/opencv.hpp> #include<iostream> using namespace std; using namespace cv; ...
- mfc 鼠标、键盘响应事件
一.基本目标 1.有一个基本的MFC程序,点击“关闭”则“关闭”这个程序,这点没什么好讲的,把自带的“取消”按钮,右键->属性的Caption改成“关闭”二字就可以了 2.鼠标在对话框中移动,则 ...
- thinkphp5 下 的Nginx 伪静态
server { listen 80; server_name all.bjed.com; root "F:\www\asdata"; location / { index ind ...
- ballerina 学习十 streams
ballerina 的streams 使用的是siddhi complex event processing 引擎处理,可以包含的语法有 projection filtering windows jo ...
- Dev-C++ 小问题锦集
C++ project cann't debug Your project does not have debugging information, do you want to enable deb ...
- JavaFX 之自定义窗口标题栏(二)
一.问题场景 PC客户端登录界面仿QQ,上边显示图片,下边显示输入框和登录按钮.而JavaFX默认的窗口,不满足需求. 二.解决思路 隐藏窗口默认的标题栏,使用创建label对象,使用css将按钮图片 ...
- 最近项目和java对接,涉及到java的DESede加解密算法
google后找到这个作者的一篇博客,搬过来用 http://hersface.com/page/17.html <?php class DESede{ /** * 加密 * @param $d ...
- 【SQLYOG】SSH ERROR:UNABLE TO OPEN CONNECTION:GETHOSTBYNAME:UNKNOWN ERROR牵引出来的一系列问题
出现这个问题很蹊跷,SQLyog管理过一二十台的mysql服务器或者vps,连接一直没有问题,各种服务商的都没问题,也包括阿里云的.可昨天偏偏一台阿里云的服务器本地通过SQLyog去连接它的时候报这样 ...