上次的博文Git实战(一)版本号控制概述中我们简介了一下版本号控制系统的概念,重点对版本号控制的三种类型进行了分析和对照,从本篇博文開始我们进入Git的世界,首先介绍一下Git实现版本号控制的原理。

Git与SVN等其它版本号控制系统的最重要的一点差别在于,Git仅仅关心文件数据的总体是否变化,而不是关心文件内容的差异。

SVN等原理分析

怎样理解呢?我们能够通过两种图进行比較。首先看一下SVN等其它版本号控制系统的原理图。例如以下所看到的:

在上述图片中,横向表示各个版本号,纵向表示各个文件和其差异。在version1中,存在三个文件各自是fileA、fileB、fileC;在version2中,fileA、fileC发生变化1,那么我们就变化1进行记录;在version3中,fileC发生了变化2,那么我们就将变化2进行记录;以此类推。

Git原理分析

接下来。我们再来看一下Git原理图。例如以下所看到的:

在上述图片中,横向表示各个版本号,纵向表示各个快照(所谓快照。即其所表示文件的一个副本或一个复制品)。在version1中,存在三个快照各自是A、B、C;在version2中,A、C发生了变化。那么我们就对A、C做一个快照A1、C1。而B没有不论什么变化,那么就不再做快照而仅仅是做一个上次的快照做一个链接B;以此类推。

通过上述分析。我们能够得出SVN等其它版本号控制系统关心的是每个文件变化的内容。即側重于细节内容。而Git则很多其它的关心每个文件总体的变化,即側重于总体。这就是Git与其它版本号控制系统的主要差别。

简单的讲,Git本身仅仅是一个版本号控制工具,使用Git并没有多少难度,假设您之前使用过类似的版本号控制工具,那么完毕一些日常性的操作,应该说是很easy的,但Git本身另一些与其它版本号控制工具所不同的内容。这就须要我们对Git的思想和工具原理做一个简单的了解了。

接下来我们继续解说Git的其它内容,敬请期待!

Git实战(二)原理相关推荐

  1. Taro多端开发实现原理与项目实战(二)

    Taro多端开发实现原理与项目实战(二) 多端电商平台项目概述及开发准备 学习了前面的基础知识和进阶后是否跃跃欲试?我们准备了一个电商平台的项目来和大家一起实践使用 Taro 开发电商平台. 项目概述 ...

  2. 面向新手的git实战教程

    嗨!我是团子,大家好久不见呀~ 记得之前在网上学习git相关知识时,看到的文章大部分都是讲解git的基本命令有哪些,用处是什么,但是自己真正上手使用git时,仍然无从下手. 所以今天就想从初始化一个g ...

  3. JVM实战与原理---内存回收策略

    JVM实战与原理 目录 内存回收策略 1. 堆的划分 2. 判断对象是否存活的算法介绍 2.1 引用计数算法 2.2 可达性分析算法 3. 可回收的内存区域清理的算法介绍 3.1 标记-清除算法 3. ...

  4. OpenCV C++案例实战二十九《遥感图像分割》

    OpenCV C++案例实战二十九<遥感图像分割> 前言 一.准备数据 二.K-Means分类 三.效果显示 四.源码 总结 前言 本案例基于k-means机器学习算法进行遥感图像分割.主 ...

  5. Git实战之git客户端上传文件到github

    Git实战之git客户端上传文件到github 一.Git介绍 1.Git简介 2.版本控制系统的分类 二.检查本地系统版本 三.windows安装Git客户端 1.进入windows的powersh ...

  6. Git实战(四)| Git分支管理实操,搞定在线合并和本地合并

    类似于SVN这种集中式版本管理,三年前刚来上海工作时候,在华为驻场上班,华为用的就是SVN,印象最深的就是那个小乌龟的图标:后来到外面工作,渐渐发现用Git的非常多,慢慢学习了解发现Git这种分布式的 ...

  7. HarmonyOS实战[一]——原理概念介绍安装:基础篇

    [本文正在参与"有奖征文|HarmoneyOS征文大赛"活动] 相关文章: HarmonyOS实战[一]--原理概念介绍安装:基础篇 HarmonyOS实战[二]-超级详细的原子化 ...

  8. python游戏开发框架_用Python和Pygame写游戏-从入门到精通(实战二:恶搞俄罗斯方块1)...

    游戏是为了什么而存在的?Bingo,是为了娱乐~ 在这个最高主题之前,技术啥的什么都无所谓! 前一段时间,有位姓刘的网友用Pygame写了个俄罗斯方块,在用py2exe打包的时候遇到一些问题,和我交流 ...

  9. flutter 项目实战二 网络请求

    本项目借用 逛丢 网站的部分数据,仅作为 flutter 开发学习之用. 逛丢官方网址:https://guangdiu.com/ flutter windows开发环境设置 flutter 项目实战 ...

最新文章

  1. ueeditor 百度编译器使用onchange效果
  2. Sql Server函数全解(四)日期和时间函数
  3. 世界人工智能发展究竟到了什么水平
  4. 全局变量/static静态变量在section段中的分布
  5. struts2S2-045漏洞相关信息
  6. pyqt5 实现右键自定义_《快速掌握PyQt5》第十七章 事件处理
  7. 使用 Python 获取 Linux 系统信息的代码
  8. java volidate线程安全_03.(多线程与并发)面试题-02--Volidate的原理和指令重排序
  9. WebStorm文件类型关联设置
  10. Linux SSH免密码登录与拷贝文件(SCP)- 亲测
  11. ssis高级转换任务—查找_SSIS中的模糊查找转换
  12. (转)霍华德·马克斯:警惕那些人人都追捧的事物
  13. iOS 设置tableview组头组尾的背景色
  14. Redis 异地双活实战
  15. 古琴【A1】基本指法
  16. (一)JAVA基于OPENXML的word文档插入、合并、替换操作系列之基础篇
  17. 《深入理解计算机系统(原书第三版)》pdf
  18. css加透明边框,CSS3实现透明边框的方法分享
  19. (附源码)计算机毕业设计SSM旅游分享平台
  20. SpringBoot+Netty开发IM即时通讯系列(一)

热门文章

  1. linux路由信息预览为空,route - 显示并设置Linux中静态路由表
  2. java推送Comet_使用Comet4j实现消息推送
  3. 2020计算机考研只考数据结构的学校,【择校必看】十三所计算机专业课只考数据结构的985院校!...
  4. java序列化的方法_【Java常见序列化与反序列方法总结】
  5. java脚本接口自动化测试_接口自动化测试实践的记录
  6. python进阶与数据操控_零基础机器学习Python进阶:Python操作MySql
  7. python动态映射_Python Django框架url反向解析实现动态生成对应的url链接示例
  8. android 开发art,Android应用开发之Android 系统启动原理(art 虚拟机)
  9. php 添加音乐,PHP网站插入音乐
  10. c语言程序执行完main函数后,一个c程序在执行main函数之前和main之后都做了那些事情啊该如何解决...