git对比svn

git与github
大名鼎鼎的github用的就是git系统来管理它们的网站,这里需要区分一下,github和git是两个东西,github是一个社区,git是一个服务系统,github只支持git分布式系统,所以故名成为github。

Git的核心部分是一个简单的是数据库,可以向该数据库插入任意的内容,它会返回一个键值方便下次索引,其中键是根据插入内容生成的哈希吗,值就是插入的内容,该键值对在git中是以blob类型存储

集中式与分布式的区别
除了git还有svn、cvs这样的版本控制系统,它们的区别在于一个是分布式一个是集中式

集中式就是svn和csv这样的版本控制系统,分布式是git

区别在于集中式的版本控制系统每次在写代码时都需要从服务器中拉取一份下来,并且如果服务器丢失了,那么所有的就都丢失了,你本机客户端仅保存当前的版本信息,换句话说,集中式就是把代码放在一个服务器上集中管理,你的所有回滚等操作都需要服务器的支持。分布式的话每个人的电脑都是服务器,当你从主仓库拉取一份代码下来后,你的电脑就是服务器,无需担心主仓库被删或者找不到的情况,你可以自由在本地回滚,提交,当你想把自己的代码提交到主仓库时,只需要合并推送到主仓库就可以了,同时你可以把自己的代码新建一份仓库分享给其它人。
在这里插入图片描述
如果大家不理解的话,我帮大家做个简单的测试,不联网的情况下做SVN版本回退
在这里插入图片描述会报错
在这里插入图片描述
报未联网错误,但对于git在这里插入图片描述
我们比较熟悉,即便是不联网也可以进线版本回退,
在这里插入图片描述
这样就很清晰的证明了上述的讲解,但要注意,如果是更新本地分支,也就是从github拉项目,那就必须联网了,因为需要请求github服务

版本号
像集中式它们都有一个主版本号,所有的版本迭代都以这个版本号为主。如图所示,一个SVN项目的版本迭代
在这里插入图片描述

而分布式因为每个客户端都是服务器,git没有固定的版本号,但是有一个由哈希算法算出的id,用来回滚用的,同时也有一个master仓库,这个仓库是一切分支仓库的主仓库,我们可以推送提交到master并合并到主仓库上,主仓库的版本号会迭代一次,我们客户端上的git版本号无论迭代多少次,都跟master无关,只有合并时,master才会迭代一次。

git去中心化的好处

  • 操作处理速度快。在Git中的绝大多数操作都是访问的本地文件和资源,不必联网就可以看到所有的历史版本记录,所以,处理起来速度也是飞快的。而SVN必须联网从中心服务器上下载下来数据才可以看到。
  • 安全性更高。因为每个人的电脑都有完整的版本库,所以某一个电脑坏掉了不要紧,随便从其他人哪里复制一个就可以了。而SVN集中式版本控制的中央服务器要是出了问题,所有人都没法干活了。
  • SVN断开网络就没有commit代码。但是Git可以先Commit到本地仓库。使用SVN在没有网络的情况下,当然可以继续本地开发,但是不能commit代码,长时间不commit代码会丢失大量的开发进程的历史记录(不能commit代码就像word中不能save一样危险)

git和svn存储方式的对比
集中式版本控制是进行差异存储,即A1,(A2-A1),(A3-A2)…(An -An-1),此时An到A1需要n-1个补丁,也就是说SVN每次存储的都是差异,此方法可节约磁盘空间但是回滚速度很慢;

分布式管理技术:每次存储的都是项目的完整记录,但是Git应用了机制的数据压缩技术,实际需要的磁盘空间并不比svn大很多,但是Git回滚速度极快,此类技术更优,因为在硬件领域中以存储空间换取性能是更划算的;因此svn适合管理小项目,Git适合管理大项目

共性:无论是哪种管理技术,本质上都是数据库技术,即储存数据(代码)的仓库

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值