原理:分布式版本号控制系统像 Git,Mercurial,Bazaar 以及 Darcs 等,client并不仅仅提取最新版本号

的文件快照,而是把原始的代码仓库完整地镜像下来。

这么一来。不论什么一处协同工作用的server发生问题,

事后都能够用不论什么一个镜 像出来的本地仓库恢复。

由于每一次的提取操作。实际上都是一次对代码仓库的

完整备份。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaG9uamFuZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="600" height="423" alt="">

更进一步。很多这类系统都能够指定和若干不同的远端代码仓库进行交互。籍此。你就能够在同一个

项目中,分别和不同工作小组的人相互协作。你能够依据须要设定不同的协作流程,比方层次模型式

的工作流。而这在曾经的集中式系统中是无法实现的。

² 快速度

² 简单

² 对非线性 并发(同意上千个并行开发的分支)

² 全然分布式

基础:

1.非差异比較,直接记录快照

Git 仅仅关心文件数据的总体是否发生变化。而大多数其它系统则仅仅关心文件内容的详细差异。

其它版本号控制器工作。把改动的文件。及其改动的内容都保存下来了。

其它系统图

Git 并不保存这些前后变化的差异数据。实际上,Git 更像是把变化的文件作快照后,记录在一个微型

的文件系统中。每次提交更新时。它会纵览一遍全部文件的指纹信息并对文件作一快照,然后保存一个

指向这次快照 的索引。为提高性能,若文件没有变化,Git 不会再次保存,而仅仅对上次保存的快照作

一链接。

Git 保存每次更新时的文件快照

2.操作都是本地运行

在 Git 中的绝大多数操作都仅仅须要訪问本地文件和资源,不用连网。

改动加入完毕之后,保存到

本地缓存区,Git 在本地磁盘上就保存着全部当前项目的历史更新。要查看历史的版本号也非常easy,不需

要联网。仅仅有当你要把本地缓存区数据push到server上时候才须要联网。

可是其它的版本号控制不能做到离开网络,比方使用cvs。你能够本地改动加入,可是须要比对

历史版本号或者查看谁改动了版本号,都须要联网支持,有时候訪问非常慢的。

3.保证数据的完整性

保存到git的数据都须要进行验证和计算,并将此结果作为数据的唯一标识和索引。

即。改动文件夹

或者内容之后,git是全然能够知道的。

Git 使用 SHA-1 算法计算数据的校验和。

4.git数据的3中状态

已改动(modified):在工作环境中,增删改后保存到工作区域。

已暂存(staged):把工作区间的代码提交到本地缓存区,可是还没提交到server主干上。

已提交(committed):同步到server上,须要联网。


【git体验】git原理及基础的更多相关文章

  1. git初体验(一)基础

    一.window下的git安装 1.安装教程 网上教程一堆,我参考的是这个:Git_Windows 系统下Git安装图解 还有这个也不错 2.环境搭建: 在配置完成后,自动加载到系统环境变量中,如我的 ...

  2. git初体验(二)基础git文件操作

    文件操作续 忽略一些文件 只需在主目录下建立".gitignore"文件,注意新建的是文件而非文件夹,在win窗口中不能建立以.开头的文件,只能在dos下: E:\knowcars ...

  3. 深入理解Git的实现原理

      0.导读   本文适合对git有过接触,但知其然不知其所以然的小伙伴,也适合想要学习git的初学者,通过这篇文章,能让大家对git有豁然开朗的感觉.在写作过程中,我力求通俗易懂,深入浅出,不堆砌概 ...

  4. 想要学好Git,应该掌握哪些基础知识?

    说到Git,作为程序员的你,在项目开发中一定会使用到或将来也一定会使用到的,但是我相信,很多在使用Git的人,都只是停留一些简单的操作上,比如提交(commit).拉取(pull).推送(push). ...

  5. git的简单理解及基础操作命令

    前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...

  6. 代码管理工具 --- git的学习笔记二《git的工作原理》

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

  7. git知识总结-2.git基本操作之原理说明

    0.前言 本文主要对git常用命令的工作原理做一个详细的说明,常用命令主要包括: 1.git add git add相关命令很简单,主要实现将工作区修改的内容提交到暂存区,交由git管理. 2. gi ...

  8. Git入门(安装及基础命令行操作)

    一.安装 1.Mac 在Mac中安装Git的方法不止一种.最简单的要数通过Xcode命令行工具.对于Mavericks(10.9)或更高版本的操作系统,当你第一次尝试在终端执行git命令时,系统会自动 ...

  9. git之一: git基础

    参考: SourceTree使用 git教程 廖学风git  文档1 文档2 1. git 概念介绍 工作区: 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区,工作区下面有. ...

  10. Git II: 操作远程Repository基础

    很久之前写过一篇Git: Setup a remote Git repository,留意到有前同事谈论到Git的一些操作,就把Git值得留意的操作补补全吧.这次,主要讲述Git远程Repositor ...

随机推荐

  1. android滚动图片

    关于广告轮播,大家肯定不会陌生,它在现手机市场各大APP出现的频率极高,它的优点在于"不占屏",可以仅用小小的固定空位来展示几个甚至几十个广告条,而且动态效果很好,具有很好的用户& ...

  2. Multiplication Puzzle POJ - 1651

    解法 区间dp例题,长度从2开始到n结束起点从1到n,中间枚举的时候是看着左端点右端点与中点的乘积 代码 #include <iostream> #include <cstring& ...

  3. 0xC00000FD: Stack overflow (parameters: 0x00000000, 0x003E2000).错误

    这个错误是“栈溢出”,每个线程的栈空间默认是1MB,局部变量(非静态)都在栈中分配,当使用的局部变量所需空间过多时,就会溢出.你检查一下程序,看看哪些函数中定义了大数组,把大数组改成用new分配,函数 ...

  4. Ahoi2014&Jsoi2014 支线剧情

    题目描述 题解: 每条边至少经过一次,说明经过下界为$1$. 然后套有源汇上下界最小费用可行流板子. 口胡一下. 此类问题的建图通式为: 1.假设原来的边流量上下界为$[l,r]$,那么在新图中建流量 ...

  5. 22. SCHEMA_PRIVILEGES

    22. SCHEMA_PRIVILEGES SCHEMA_PRIVILEGES表提供有关schema(数据库)特权的信息.它从mysql.db系统表中获取其值. SCHEMA_PRIVILEGES表有 ...

  6. Linux网络技术管理

    1. OSI七层模型和TCP/IP四层模型 1.1 osi 七层模型 Open System interconnection,开放系统互连参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系 ...

  7. Linux用户和组的概念

    目 录 第1章 用户和组存在的关系    1 1.1 我们现在所使用的操作系统都是多用户操作系统    1 1.2 id命令查看当前登陆的用户信息    1 1.3 用户UID的分类    1 1.4 ...

  8. matlab ()的用法

    经常见到标识符+(),用法比如阵列Y().函数f()..... 时机到了,会总结一下.

  9. python 装饰器模拟京东登陆

    要求: 1.三个页面:主页面(home).书店(book).金融页面(finance)2.有两种登陆方式:主页面和书店页面使用京东账户登陆,金融页面使用微信账户登录2.输入:1 ,进入主页面,以此类推 ...

  10. Specified VM install not found: type Standard VM, name JDK1.8

    真正的问题解决方法在这里:在项目中,右键点击ant文件,选择Run As -- External Tools Configuration,在这个页面的顶端就会看到有红叉叉的报错,报错信息就是Speci ...