git版本控制和svn的区别

1.关于版本控制

  • 什么是“版本控制”?我为什么要关心它呢? 版本控制是一种记录一个或若干文件内容变化以便将来查阅特定版本修订情况的系统。 一般程序员对保存着软件源代码的文件作版本控制,但实际上,你可以对任何类型的文件进行版本控制。

2.本地版本控制系统

  • 人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文件的历次更新差异。
  • 最流行的是RCS,它的工作原理是在硬盘上保存补丁集(补丁是指文件修订前后的变化);通过应用所有的补丁,可以重新计算出各个版本的文件内容
    在这里插入图片描述
    缺点:
  • 无法多人协同工作。
  • 变更历史记录被保存在单一位置,有丢失的风险

3.集中式版本控制系统

为了让在不同系统上的开发者协同工作。 于是,集中化的版本控制系统
Centralized Version Control Systems,简称 CVCS)应运而生。 这类系统,诸如 CVS、Subversion 以及Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端 连到这台服务器,取出最新的文件或者提交更新。
在这里插入图片描述
缺点:

  • 中央服务器的单点故障,影响提交更新和协同工作。
  • 中心数据库磁盘损坏,恰好没有做备份的话,你将丢失所有数据–包括项目的变更历史

4.分布式版本控制系统

分布式版本控制系统(Distributed Version Control System,简称 DVCS),像Git、Mercurial、Bazaar 以及 Darcs 等。

  • 本地完整镜像代码仓库,包括历史变更记录。 客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复**。因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。
  • 许多这类系统都可以指定和若干不同的远端代码仓库进行交互。籍此,你就可以在同一个项目中,分别和不同工作小组的人相互协作。 你可以根据需要设定不同的协作流程,比如层次模型式的工作流,而这在以前的集中式系统中是无法实现的
    在这里插入图片描述

5.git的特点

5.1 直接记录快照,而非差异比较

在这里插入图片描述

5.2 近乎所有操作都是本地执行
  • 因为本地更新的代码是对远程代码的完全镜像,所以变更历史等本地都有,不像svn一样还要联网去比较
5.3 git的完整性

在这里插入图片描述

5.4 git一般只往里面添加数据

在这里插入图片描述

5.5 三种状态
  • 三种状态:已提交(committed)、已修改(modified)、已暂存(staged)

  • 三种工作区域:git仓库、工作目录、暂存区域

    • Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
    • 工作目录是对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
    • 暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。 有时候也被称作“索引”,不过一般说法还是叫暂存区域。
  • 基本的 Git 工作流程如下:

    • 1.在工作目录中修改文件。
    • 2.暂存文件,将文件的快照放入暂存区域。
    • 3.提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。 如果 Git 目录中保存着特定版本的文件,就属于已提交状态。 如果作了修改并已放入暂存区域,就属于已暂存状态。 如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。

6.svn和git的区别

  • 最大区别就是,git是分布式的,每个去克隆代码的人,都会把代码仓库镜像到本地,避免丢失
  • Git 从一个分支向另一个分支合并代码的时候,会把要合并的分支上的所有提交一个一个应用到被合并的分支上,合并后也能看得到整个代码的变更记录。而其他的版本管理工具则不能。
  • Git 切换分支的时候通常很快。不像其他版本管理器,每个分支一份拷贝。
  • Git 有很多非常有用的命令,让你可以很方便地工作。比如git stash命令,可以把当前没有完成的事先暂存一下,然后去忙别的事。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值