• Git(1):思想及概念


    Git与其他版本控制软件的差异及思想

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

        Git不保存这些前后变化的差异数据。实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接。Git 的工作方式就如下图所示。

    近乎所有操作都是本地执行

        在Git中的绝大多数操作都只需要访问本地文件和资源,不用连网。Git 不用跑到外面的服务器上去取数据回来,而直接从本地数据库读取后展示给你看。所以任何时候你都可以马上翻阅,无需等待。如果想要看当前版本的文件和一个月前的版本之间有何差异,Git 会取出一个月前的快照和当前文件作一次差异运算,而不用请求远程服务器来做这件事,或是把老版本的文件拉到本地来作比较。

    时刻保持数据完整性

        在保存到 Git 之前,所有数据都要进行内容的校验和(checksum)计算,并将此结果作为数据的唯一标识和索引。换句话说,不可能在你修改了文件或目录之后,Git 一无所知。这项特性作为 Git 的设计哲学,建在整体架构的最底层。所以如果文件在传输时变得不完整,或者磁盘损坏导致文件数据缺失,Git 都能立即察觉。

    基本概念

    对于任何一个文件,在 Git 内都只有三种状态:

      已修改(modified):已修改表示修改了某个文件,但还没有提交保存。

      和已暂存(staged):把已修改的文件放在下次提交时要保存的清单中。

      已提交(committed):已提交表示该文件已经被安全地保存在本地数据库中了。

    与其相对应的三个工作区域:

      工作目录:从项目中取出某个版本的所有文件和目录,用以开始后续工作的叫做工作目录。这些文件实际上都是从 Git 目录中的压缩对象数据库中根据某个版本提取出来的,接下来就可以在工作目录中对这些文件进行编辑。

      暂存区域:暂存区域只不过是个简单的文件,一般存放在.git/index中,所以我们把暂存区有时也叫作索引(index)。

      本地仓库:提交更新后,保存在暂存区域的文件快照永久转储到Git目录中。Git的对象库,实际位于".git/objects"目录下,里面包含了创建的各种对象及内容。当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中。

     

  • 相关阅读:
    CentOS 6.5 源码安装subversion-1.8.8,附加mod_dav_svn模块
    MySQL建表设置外键提示错误
    Servlet3.0提供的异步处理
    Servlet3.0使用@WebServlet注解配置问题记录
    我的博客开通啦!
    关于Wii的蓝牙接收
    关于Wii的软件制作
    提升学习算法简述:AdaBoost, GBDT和XGBoost
    决策树中的熵和基尼指数
    机器学习排序算法:RankNet to LambdaRank to LambdaMART
  • 原文地址:https://www.cnblogs.com/storml/p/7460938.html
Copyright © 2020-2023  润新知