• Git系列教程二 基础介绍


    一、存储方式
    如果让我们设计一个版本控制系统,最简单的方式就是每做一次更改就生成一个新的文件。
    这样的方式太占用空间,所以传统的版本控制系统都是保存一个文件的某个版本的全部内容以及其他版本相对于这个版本的更改,这样就节省了大量的空间。
    不过Git却反其道而行之,采用了类似生成副本的方式保存每一次更改,我们称之为快照。
    如果还有疑惑,下面我们会详细介绍这张图代表的意思。
    二、存储对象类型
    Git中有很多存储对象,这里我们着重讲解其中的三个:Blob(块)、Tree(目录树)、Commit(提交)。
    1、Blob(块)
    文件的每个版本对应一个块,块里面只包含每个文件的内容,不包含其他任何信息。
    例如 1.txt 文件修改过两次且内容不相同,那在git的版本库中就会生成两个块文件,每次修改对应一个块文件。
    块文件是根据文件内容生成的二进制大对象,相同的文件指向相同的块文件。比如 1.txt 和 2.txt 中的文本内容一模一样,那这两个文件指向同一个块文件。
    2、Tree(目录树)
    目录树里包含的是当前这个树下的所有文件路径以及子树,从而形成一个完整的目录结构。
    目录树里有指向块的索引。
    3、Commit(提交)
    提交里面记录的是每次提交的元数据,包括作者、时间以及提交内容等。
    每一个提交对象指向一个树对象,树对象则包含了此次提交后的完整目录信息。
    每一个提交对象都有一个父提交,除了第一次提交对象以外。
    这张图片的每个Commit就对应着最上面那张图片的版本。这样从 提交 到 树 再到块,一层层的嵌套下去。
    下一篇文章我们讲解Git里面是如何构建这张图片的。
  • 相关阅读:
    python测试开发django-165.form表单序列化json的2种方式
    python测试开发django-164.bootstrap-table 单元格添加select下拉框
    python测试开发django-163.bootstrap-table 表格单元格行内编辑
    python测试开发django-162.ajax 提交表单,防重复提交(beforeSend)
    postman使用教程18-如何取出返回 cookie 中的 sessionId 值
    python测试开发django-161.Celery 定时任务保存到数据库 (djcelery)
    python测试开发django-160.Celery 定时任务 (beat)
    pytest文档77
    python测试开发django-159.Celery 异步与 RabbitMQ 环境搭建
    计算图像数据集的均值和方差(mean, std)用于transforms.Normalize()标准化
  • 原文地址:https://www.cnblogs.com/waitingAlone/p/6180853.html
Copyright © 2020-2023  润新知