zoukankan      html  css  js  c++  java
  • 【git体验】git原理及基础

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

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

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

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

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

    完整备份。


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

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

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


    ² 快速度 

    ² 简单

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

    ² 全然分布式


    基础:

    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上,须要联网。






     



  • 相关阅读:
    DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践
    UVA10071 Back to High School Physics
    UVA10071 Back to High School Physics
    UVA10055 Hashmat the Brave Warrior
    UVA10055 Hashmat the Brave Warrior
    UVA458 The Decoder
    UVA458 The Decoder
    HDU2054 A == B ?
    HDU2054 A == B ?
    POJ3414 Pots
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6877588.html
Copyright © 2011-2022 走看看