git使用记录五:commit, tree, blob三个对象之间的关系

git使用记录五: commit, tree ,blob三个对象之间的关系

查询一下最后的两次 log

soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy (master)
$ git log   -n 2
commit 32f575d33a6bcf8b834590718594e472e0ff9b4b (HEAD -> master)
Author: soaoen <soaeon@163.com>
Date:   Tue May 21 21:01:41 2019 +0800

    add index.html

commit 980e3beda020a9696626c671badc4f1612f0a1aa
Author: soaoen <soaeon@163.com>
Date:   Tue May 21 21:01:04 2019 +0800

    rename readme

那我们去看看 ‘32f575d33a6bcf8b834590718594e472e0ff9b4b’ 是个什么类型的?

soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy (master)
$ git cat-file -t 32f575d33a6bcf8b834590718594e472e0ff9b4b
commit

commit对象呀, 其实查询log的时候 已经显示出来了哟, 去看看这个commit 里面有什么东西呗

soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy (master)
$ git cat-file -p 32f575d33a6bcf8b834590718594e472e0ff9b4b
tree b45764296505a9fa97245d0b0107b2a3b5f46447
parent 980e3beda020a9696626c671badc4f1612f0a1aa
author soaoen <soaeon@163.com> 1558443701 +0800
committer soaoen <soaeon@163.com> 1558443701 +0800

add index.html

里面记录了tree 对应的hash值, 走起,我们去看看tree 中的内容

soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy (master)
$ git cat-file -t b45764296505a9fa97245d0b0107b2a3b5f46447
tree

soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy (master)
$ git cat-file -p b45764296505a9fa97245d0b0107b2a3b5f46447
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391    index.html
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391    readme.md

原来我们commit的两个文件(index.html和readme.md文件) 在本次commit 中生成了blob对象保存在commit 中,那么blob对象中内容涉及到修复的数据了。

  • 所以一个commit 包含 tree对象,author, commiter, log-info,
  • tree对象中又包含许多blob 对象
posted @ 2019-05-21 22:58  soaeon  阅读(760)  评论(0编辑  收藏  举报