git学习日志-git保存数据的简介

2020-07-05  本文已影响0人  Levi_moon

接下来几章将学习git分支,但是在了解git分支之前,有必要先回顾下git是如何保存数据及数据的组成:

为了更好的理解git是如何保存数据的,假设现在有一个工作目录,里面包含了三个将要提交的文件。

  1. git会为每个文件计算校验和;
  2. git会把当前版本的文件快照保存到git仓库中(git使用blob对象保存它们),并将校验和加入到暂存区等待提交;
  3. 当进行提交操作时,git会先计算每个子目录的校验和,然后在git仓库中将这些校验和保存为树对象;
  4. git创建一个提交对象,除了包含以上提到的信息,还会包含指向这个树对象的指针。

至此,git仓库中总共有五个对象,分别是:三个blob对象(保存文件快照)、一个树对象(记录目录结构和blob对象索引)、一个提交对象(包含指向前述对象的指针及所有提交信息)。

提交时,仓库中的五个对象

当对文件做了修改后再提交,那么这次产生的提交对象会包含一个指向上次提交对象(父对象)的指针。

修改后再提交

git的分支,其本质仅仅是指向提交对象的可变指针。git的默认分支名称是master。在多次提交后,我们其实已经有一个指向最后那个提交对象的master分支了。master分支会在每次提交时自动向前移动。

上一篇下一篇

猜你喜欢

热点阅读