Git和SVN的区别

Git和SVN的区别?

a、存储方式不一样
  Git按照元数据的方式将文件的一个版本存入了一个类似与K/V数据库,而SVN是按照文件的方式进行一个存储。Git的内部有一个类似于K/V的数据库,我把他理解为是一个Map<K,V>,我们将内容存储到Git的数据库内后,Git会返回一个Key给我们,这个Key是唯一的(把一模一样的内容上传进去,这个key也是唯一的)。演示如下:
  1、使用git init demo命令创建一个Git仓库;
  2、使用cd demo进入demo这个Git仓库下;
创建Git仓库
  3、使用echo 'this is demo' >> demo.txt命令创建一个demo.txt文件,并在文件内写入this is demo;使用ls命令查看是否有demo.txt这个文件;使用vim demo.txt查看demo.txt文件内是否为’this is demo’;
查看demo.txt
查看demo.txt文件内容
  4、使用git hash-object -w demo.txt命令将demo.txt文件里面的内容存储进Git的数据库中,其中第二个红色框框的内的值"25b3c07137f646bf05bdd00c42d2a4c5bc831bb7"就是Git的数据库返回给我们的K;
在这里插入图片描述
  5、可以通过git cat-file -p 25b3c07137f646bf05bdd00c42d2a4c5bc831bb7命令去将值取出来;
通过键取值
  6、再使用命令创建一个demo1.txt文件,里面同样放进去的是"this is demo"看看他们的K是否一样;
两个文件的K比较
  这就是Git存储数据的方式了,SVN不同,SVN存储数据的方式其实就是把文件复制一份进行存储。
b、使用方式不一样
  从本地把文件推送到远程服务,SVN只需要commit而Git需要add、commit、push三个步骤。
  使用SVN开发者只要把文件修改了,只要commit其他开发人员就可以直接checkout下来。如下图所示:
SVN使用过程
  但是Git就不相同了,Git如果要从本地将修改后的文件提交进入远程仓库再从远程仓库将其他开发者修改后的文件checkout下来需要以下几个步骤:
    1、首先把修改后的文件通过add添加到我们的暂存区;
    2、然后通过commit命令将暂存区的文件提交到本地仓库;
    3、最后通过push命令将本地仓库的文件存入到远程仓库;
    4、要通过clone命令将远程仓库的文件拉到本地仓库;
    5、最后通过checkout将本地仓库的内容取出来;
  Git使用过程如下图所示:
Git使用过程
c、管理模式不一样
  Git是一个分布式的管理系统,而SVN是远程集中式的管理系统。
  如果说SVN的远程仓库挂掉了,那我的本地项目再也不能做提交,也不能做分支的切换,也不能够干和版本管理相关的任何事情,这就是集中式管理的缺陷了。集中式管理方式如下图所示:
SVN管理模式
  在项目内有一个Git仓库,也就是说在本地一个项目包含一个完整Git仓库,Git仓库是在项目内的,远程仓库能干的事情本地的Git仓库也能干。本地仓库和远程仓库通过四种主要传输协议相关联(本地协议、Http协议、SSH协议、Git协议)。Git还支持远程仓库里面的多个远程仓库。
Git管理模式

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GitSVN是两种常用的版本控制系统,它们有一些重要的区别。 1. 分布式 vs 集中式:Git是一种分布式版本控制系统,每个开发者都拥有完整的代码仓库副本,可以在本地进行提交、分支和合并等操作,不需要依赖服务器。而SVN是一种集中式版本控制系统,开发者需要从中央服务器获取代码并提交更改。 2. 速度:Git通常比SVN更快。因为Git在本地存储了完整的代码仓库,不需要频繁地与服务器通信。而SVN需要与中央服务器进行交互,因此速度相对较慢。 3. 分支和合并:Git具有强大的分支和合并功能,允许开发者轻松创建、切换和合并分支,这使得并行开发和团队协作更加灵活。SVN的分支和合并相对较为复杂,需要手动创建分支,并在合并时可能会出现冲突。 4. 历史记录:Git存储了每次提交的完整快照,可以轻松地查看历史记录,并回滚到任意版本SVN只存储了每个文件的差异,查看历史记录相对不方便。 5. 分布式开发:由于Git是分布式的,开发者可以在没有网络连接的情况下进行提交、分支和合并等操作。SVN需要与中央服务器通信,因此需要网络连接才能进行开发。 总的来说,Git适用于分布式开发、并行开发和大规模项目,具有更快的速度和强大的分支合并功能。SVN适用于小型项目和集中式开发,对于不熟悉分布式版本控制的团队来说更容易上手。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值