younghz原创,转载请注明:http://blog.csdn.net/u012150179/article/details/24653491
关于对象库中包含的内容在之前已将讨论过,可以进入.git通过ls查看:
下面主要讨论的是objects目录下的东西。
首先通过git log查看提交历史,可通过加上–pretty=raw参数获取详细信息:
包含commit对象,tree对象,以及当前提交的上一次提交parent。最下方由于是首次提交并无parent。后面的哈希值是提交的唯一ID,是一个40位的十六进制数。
怎样通过这些对象的ID查看这些对象的信息呢?git cat-file首当其冲,其两个重要参数-p和-t分别代表查看ID对象的内容与类型。以上为例:
另外注意的是在第二次提交显示的parent也是commit对象,如下:
这里的几个对象(commit、tree)有什么关系呢,通过git cat-file –p命令来研究,仍是以第二次提交为例:
记住git cat-file –p是查看内容的,所以ID对应的内容就如上所示,这里通过tree发现新的一个类型的对象就是blob类型,这个对象保存的就是你提交的文件。这样你就在库中找到了你的文件了。需注意的是:不通过这种方式在库中你是找不到你所提交的文件的,平时操作中你是在工作区中进行,所里可以看见所有文件,但当你把所有的commit都push到一个bare版本库时,你想看看版本库中都有什么,通过这个方式就OK了(最近才顿悟)。
在想看看保存文件的内容:
就不回车了,内容有点多。。
用图直观表示: