GIT和SVN的区别

GIT和SVN的区别

摘要

从老早之前就听说过版本控制的概念,但一直不明白所以然。平时在开发的过程中,使用版本控制可以给我们带来很多好处,最重要的一点是它可以让多人协作开发代码。之前接触到的都是使用GIT进行版本控制,但入职的这一家公司使用的却是SVN进行代码管理,并且使用了一个免费的开源的客户端TortoiseSVN来进行一些更新,提交操作。

GIT

  • 概念
    GIT是目前世界上最先进的分布式版本控制系统(没有之一)。​当这个系统的任何一个客户端出现问题的时候,都可以从另外的客户端(即使服务器挂了)获取所有的代码。
  • 基本命令
  1. 创建仓库
    git init
  2. 添加文件到缓存
    git add .
  3. 查看项目当前状态
    git status
  4. 将缓存区内容添加到仓库
    git commit -m "提交信息"
  5. 创建分支
    git checkout -b (branchname)
  6. 查看当前分支
    git branch
  7. 切换分支
    git checkout (branchname)
  8. 拷贝一个GIT仓库到本地
    git clone [url]

SVN

  • 概念
    SVN又叫做集中式版本控制器。严重的依赖服务器端,当服务器端无法使用的时候,版本控制也就无法再使用了。
  • TortoiseSVN基本使用
  1. 安装
    下载地址https://tortoisesvn.net/downloads.html,另外页面里含有语言包补丁的下载链接,可根据个人需要下载其他语言。下载完语言包之后,需要进入客户端进行语言的切换设置。
  2. 检出
    在一个指定的位置,点击鼠标右键选择【SVN 检出】,在弹出对话框内输入repository(版本库)的位置和Checkout directory检出目录,点击确认按钮就可以取得指定的档案及目录了。
  3. 更新
    在想要更新的文件上或文件所在目录下单机鼠标右键,选择【SVN 更新】,则将新文件更新到仓库中。

GIT和SVN的区别

  1. GIT是分布式的,而SVN是集中式的。
  2. GIT把内容按元数据方式存储,而SVN是按文件:因为GIT目录是处于个人机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。​
  3. GIT分支和SVN的分支不同:SVN会发生分支遗漏的情况,而GIT可以同一个工作目录下快速的在几个分支间切换,很容易发现未被合并的分支,简单而快捷的合并这些文件。
  4. GIT没有一个全局的版本号,而SVN有。
  5. GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

集中式和分布式的区别

  1. 集中式版本控制系统:版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。​集中式版本控制系统最大的毛病就是必须联网才能工作。
  2. 分布式版本控制系统:分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
  3. 分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

总结

因为公司项目已有现有骨架和SVN仓库,所以平时的操作也主要集中于检出和更新上。另由于公司规模比较小,协同开发的人数并不多,可控的范围也比较大。

posted @ 2020-04-15 21:56  青青U衿  阅读(190)  评论(0编辑  收藏  举报