上次的博文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. 代码管理工具 --- git的学习笔记二《git的工作原理》

    通过几个问题来学习代码管理工具之git 一.git是什么?为什么要用它?使用它的好处?它与svn的区别,在Mac上,比较好用的git图形界面客户端有 git 是分布式的代码管理工具,使用它是因为,它便 ...

  2. git实战-linux定时监控github更新状态(二)

    系列文章 git介绍-常用操作(一)✓ git实战-linux定时监控github更新状态(二)✓ 本文主要内容 如何查看github的本地仓库和远程仓库的同步情况 linux服务器定时监控githu ...

  3. Git详解之一 Git实战

    Git详解之一 Git实战 入门 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作.读完本章 ...

  4. xgboost入门与实战(原理篇)

    sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...

  5. Spring Boot 实战与原理分析视频课程

    Spring Boot 实战与原理分析视频课程 链接:https://pan.baidu.com/share/init?surl=PeykcoeqZtd1d9lN9V_F-A 提取码: 关注公众号[G ...

  6. Netty 仿QQ聊天室 (实战二)

    Netty 聊天器(百万级流量实战二):仿QQ客户端 疯狂创客圈 Java 分布式聊天室[ 亿级流量]实战系列之15 [博客园 总入口 ] 源码IDEA工程获取链接:Java 聊天室 实战 源码 写在 ...

  7. Git实战

    Git实战 1.Git特点 1.1.Git两大特点 版本控制:可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题. 分布式:Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器 ...

  8. coreseek实战(二):windows下mysql数据源部分配置说明

    coreseek实战(二):windows下mysql数据源部分配置说明 关于coreseek在windows使用mysql数据源的配置,以及中文分词的详细说明,请参考官方文档: mysql数据源配置 ...

  9. Gulp实战和原理解析

    Gulp实战和原理解析(以weui作为项目实例)http://i5ting.github.io/stuq-gulp/

随机推荐

  1. MVC 之 System.Web.Optimization找不到引用

    在MVC4的开发中,如果创建的项目为空MVC项目,那么在App_Start目录下没有BundleConfig.cs项的内容,在手动添加时在整个库中都找不到:System.Web.Optimizatio ...

  2. Using LACP with a vSphere Distributed Switch 5.1

    Using LACP with a vSphere Distributed Switch 5.1 by Chris Wahl on Oct 15th, 2012 | 6,347 views One o ...

  3. vsphere HA内幕变化

    see aslo:http://www.yellow-bricks.com/vmware-high-availability-deepdiv/ HA Deepdive My posts on VMwa ...

  4. 树莓派通过GPIO控制步进电机

    一.接线方式与GPIO调用方法: 电源接入+5v和GND In1-4分别接GPIO1-4 正转时,GPIO1-4分次传入:[1,0,0,0],[sleep],[0,1,0,0],[sleep],[0, ...

  5. 009-Go 读取写入CSV文件

    package main import( "encoding/csv" "fmt" "os" "strconv" ) t ...

  6. HDOJ 5288 OO’s Sequence 水

    预处理出每一个数字的左右两边能够整除它的近期的数的位置 OO's Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 13 ...

  7. 转-ubuntu清理卸载wine的残余项目

    背景:前段时间,装了wine试用了一下,感觉实在没啥意思就卸载了.但是卸载以后发现还有些尾巴碍眼,如打开文件时右键菜单里就会有“使用notepad打开”的选项,虽然没有什么别的问题,但是看着碍眼.所以 ...

  8. 收银台(POSBox) 配置向导

    先决条件 在开始设置您的POSBox之前, 确保你准备好了一切. 你会需要 : POSBox 2A电源适配器 一台带最新的Web浏览器的计算机或平板电脑. 可用的的SaaS或已安装零售的Odoo 设置 ...

  9. python之模块base64

    # -*- coding: cp936 -*- #python 27 #xiaodeng >>> help(base64) #用来作base64编码解码 FUNCTIONS #函数( ...

  10. 创建第一个servlet程序--HelloServlet

    这篇文章是用来纪念我第一次创建一个Servlet程序,步骤我会写得详细点,也可以参考一下,后续我会将SpringMVC 跟ssh的搭建分别更新(ps:不忙的话我会更新) 工具:java jdk 1.6 ...