Git & GitHub 学习笔记(放弃更新)

这篇文章主要是对于man git的梳理。

# 1 基本概念

# 1.1 仓库(Repository)

Git 仓库存储着一个项目整个生命周期的所有信息。仓库包含的配置文件是每一个仓库独有的,即不随 clone 等命令传递到其他的仓库。此外,仓库还包含两种基本的数据:对象存储(Object store)和索引(index)。

# 1.2 Git 对象类型(Object Type)

Git 的对象存储包含了源文件、日志信息、配置信息等等。对象有以下 4 种:

  • 二进制对象(Blob):用于存储某一文件的数据,不包含任何元信息(日期、文件名等等);
  • 树(Tree):用于存储某一目录下的信息,记录了子二进制对象的 ID,路径名,以及目录下文件的元信息。同时树也能递归引用,从而完整地存储文件的目录层次;
  • 提交(Commit):用于存储仓库更改的元信息,包括作者、提交者、日期和日志信息。同时每个提交会指向一个树,记录了文件系统的快照。最初的提交称为根提交(Root commit),不存在父节点,其他的提交存在一个或多个父节点;
  • 标签(Tag):向一个对象指派一个名字。 Git 在需要的时候会对这些对象进行压缩,构成包文件(Pack files)。这些对象的存储的文件名为其内容的 SHA1 值。

# 1.3 索引(Index)

索引是临时的用于描述整个仓库目整体结构的文件。它使得系统不断开发作出的微小改动(stage)和这些更改的提交分离(commit)。索引在分支合并(merge)的时候启到了关键作用:允许不同版本的文件被同时管理。

# 1.4 基于内容的

2016-2020 Ziping Sun
京ICP备 17062397号