如何查看Git对象】的更多相关文章

原文:http://gitbook.liuhui998.com/7_2.html 如果在阅读本文之前,你还不知道git是如何进行存储的,请先阅读<Git是如何存储对象的>. 我们可以使用cat-file命令去查询特定对象的信息. 注意下面只键入了SHA值的一部分, 不必把40个字符全部键入: $ git-cat-file -t 54196cc2 commit $ git-cat-file commit 54196cc2 tree 92b8b694ffb1675e5975148e11218100…
1查看git对象 git cat-file 实践 git head到底指向的是什么 ➜ gittest git:(master) find .git -name HEAD -o -name master .git/refs/heads/master .git/HEAD .git/logs/refs/heads/master .git/logs/HEAD ➜ gittest git:(master) cat .git/HEAD ref: refs/heads/master  #HEAD文件指向一个…
目录 (一)Git对象的存放目录 (二)Git中对象类型 (三)blob对象 1.blob对象说明 (1)blob对象定义 (2)blob对象说明 (3)blob对象存储的方式 (4)查看blob对象内容 (5)查看Git对象的类型 (6)Git管理文件 (7)Git管理修改过的文件 2.blob对象总结 3.问题 4.本文用到的命令总结 Git 是一套内容寻址文件系统.什么意思呢? 就是Git的核心部分是一个简单的键值数据库(key-value data store).你可以向该数据库插入任意…
目录 1.Tree对象介绍 2.Tree对象说明 (1)初始化一个新的本地版本库 (2)创建一个树对象(重点) (3)创建第二个文件(重点) (4)将第一个树对象加入暂存区,使其成为新的树对 3.总结 (1)分析每个树对象的存储结构 (2)blob对象和tree对象(重点) (3)总结(重点) 4.问题 5.本文用到的命令总结 1.Tree对象介绍 接下来要探讨的 Git 对象类型是树对象(tree object),它能解决文件名保存的问题.tree对象可以存储文件名,也允许我们将多个文件组织到…
目录 1.Commit对象介绍 2.Commit对象说明 3.本地库中对象之间的关系 4.总结 5.练习 6.本文用到的命令总结 1.Commit对象介绍 现在来介绍最后一种Git对象commit对象,也叫提交对象. 提交对象可以理解为是对树对象的一层封装,提交信息包括基于当前暂存区中索引文件生成的tree对象,还有包含了提交时间,提交者信息,作者信息,以及提交备注等内容,更重要的是里面还包含了父提交的ID,由此就可以形成Git提交的有向无环图.(是链式的关系,把所有commit对象关联起来)…
1. find .   查看目录中所有对象 2. find .git/objects 查看所有对象 3. git cat-file -p 散列值  输出文件内容…
之前提到当存储数据内容时,会在objects文件夹下存储一个git对象.我们花些时间来看看 Git 是如何存储对象的.你将看来如何通过 Ruby 脚本语言存储一个 blob 对象 ,有必要了解一下对象是如何被存储的.以git设计哲学中的test1.txt为例分析blob对象如何被计算校验和?如何被存储?是否和直接调用git命令的结果一致? sha-1校验和计算 我们需要验证通过ruby计算出来的检验和与这个一致. 为了验证,新建一个git仓库 $ mkdir blobtest $ cd blob…
Git对象 版本控制在于文件的控制,git的控制方法在于为每个文件生成(key,object)的结构.git利用sha-1加密算法,对每一个文件生成一个唯一的字符序列(明文大小不超过2^64位,对于普通文件,这个大小都可以满足)作为hash_key. init初始化一个本地仓库,打开隐藏目录.git,其内容如下图.可以看到一个objects的目录,里面只有info和pack两个空文件夹.初始化的时候不存在任何object,也就是没有任何文件被记录下来. 在Git系统中有四种类型的对象,几乎所有G…
git log -l -pretty=raw // 查看日志 -l是干啥的 git log -pretty=raw // git cat-file -t 哈希值 // 查看id的类型 不知道为啥这里我不一样:即使用git log -l --pretty=raw也只是出现commit的,但是git cat-file -p 哈希值则会出现tree和parent. root@tuhooo:~/workspace/demo # git log commit ac31089960196a531c277dc…
上一节了解了 Git 的一个重要的概念:暂存区. 暂存区是一个介于工作区和版本库的中间状态,当执行commit时,实际上是将暂存区的内容提交大版本库中,而执行add则是将本次变更添加到暂存区. 上一节中也出现了很多新的问题?比如说 HEAD 是什么?它与 master 是什么关系? Git对象库探秘 前面我们查看提交日志的时候,出现了提交ID,一个由40位十六进制数字组成的SHA1哈希值,通过查看日志的详细输出,会看看到更多的SHA1哈希值. 可以看出,一个提交当中包含了三个用 SHA1哈希值…