5:Git的提交对象

  1. 我们可以通过调用 commit-tree 命令创建一个提交对象,为此需要指定一个树对象的hash值,以及该提交的父提交对象(如果有的话,第一次将暂存区做快照就没有父对象).
    为什么需要tree对象的hash值?
    因为commit对象就是将tree对象进行多一层的包裹,将这个tree对象进行一些解析说明,比如这个tree对象的版本是什么,是谁提交的,这个版本修改了什么等等的说明内容.
    为什么需要父提交对象?
    因为每一个提交对象都是和上一个提交对象串起来的,就是这个提交对象上面连着父提交对象(就是上一次的提交对象),下面的连着下一次的提交对象
    下面这张图看着就很清晰:
    在这里插入图片描述
  2. 创建提交对象的格式
    第一次生成提交对象,没有父提交对象:
echo 'first commit这是提交对象里面的注释' | git commit-tree tree对象的hash值
返回:提交对象的hash值

查看提交对象 git cat-file -p 提交对象的hash值
第二次或以上生成提交对象,有父提交对象

echo 'second commit提交对象里面的注释' | git commit-tree tree对象的hash值 -p 父提交对象的hash值

提交对象的格式很简单:
它先指定一个顶层树对象,代表当前项目快照;
然后是作者/提交者信息(依据你的 user.name 和 user.email 配置来设定,外加一个时间戳);
留空 一行,最后是提交注释
在这里插入图片描述

发布了133 篇原创文章 · 获赞 37 · 访问量 4747

猜你喜欢

转载自blog.csdn.net/qq_43416157/article/details/104195905