Git 提供了很多方法可以方便地访问 Git 库中的对象:

♦ 采用不分的 SHA1 哈希值。不必把 40 位的哈希值写全,只采用开头的部分(4 位以上),只要不与现有的其他哈希值冲突即可。

♦ 使用 master 代表分支 master 中最新的提交,也可以使用全称 refs/heads/master 或 heads/master。

♦ 使用 HEAD 代表版本库中最近的一次提交。

♦ 符号 ^ 可以用于指代父提交。例如:

  ο HEAD^ 代表版本库中的上一次提交,即最近一次提交的父提交。

  ο HEAD^^ 则代表 HEAD^ 的父提交。

♦ 对于一个提交有多个父提交,可以在符号 ^ 后面用数字表示是第几个父提交。例如:

  ο ad70b79^2 的含义是提交 a7d0b79 的多个父提交中的第二个父提交。

  ο HEAD^1 相当于 HEAD^ ,含义是 HEAD 的多个父提交中的第一个父提交。

  ο HEAD^^2 的含义是 HEAD^(HEAD父提交)的多个父提交中的第二个父提交。

♦ 符号 ~<n> 也可以用于指代祖先提交。例如:

  ad70b79~5 即相当于 bd70b79^^^^^。

♦ 提交所对应的树对象,可以用类似如下的语法访问:

  ad70b79^{tree}

♦ 某一次提交对应的文件对象,可以用如下的语法访问:

  ad70b79:path/to/file

♦ 暂存区中的文件对象,可以用如下的语法访问:

  :path/to/file

可以使用 git rev-parse 命令在本地版本库中练习一下:

$ git rev-parse HEAD

ad70b79bd5a58ab410e7b92debb8dc25102e4dac

$ git cat-file -p ad70

tree f58da9a820e3fd9d84ab2ca2f1b467ac265038f9
parent 896c8ae6f161e77f90690b459c333598b9f07f77
author Eric Wong <slackprogrammer@gmail.com> 1400603791 +0800
committer Eric Wong <slackprogrammer@gmail.com> 1400603791 +0800

which version checked in?

$ git cat-file -p ad70^

tree 190d840dd3d8fa319bdec6b8112b0957be7ee769
author Eric Wong <slackprogrammer@gmail.com> 1400583459 +0800
committer Eric Wong <slackprogrammer@gmail.com> 1400583459 +0800

initialized

$ git rev-parse ad70^{tree}

f58da9a820e3fd9d84ab2ca2f1b467ac265038f9

$ git rev-parse ad70^^{tree}

190d840dd3d8fa319bdec6b8112b0957be7ee769

Git 对象的更多相关文章

  1. 完整学习git四git对象

    1查看git对象 git cat-file 实践 git head到底指向的是什么 ➜ gittest git:(master) find .git -name HEAD -o -name maste ...

  2. git对象存储

    之前提到当存储数据内容时,会在objects文件夹下存储一个git对象.我们花些时间来看看 Git 是如何存储对象的.你将看来如何通过 Ruby 脚本语言存储一个 blob 对象 ,有必要了解一下对象 ...

  3. 版本控制-Git对象

    Git对象 版本控制在于文件的控制,git的控制方法在于为每个文件生成(key,object)的结构.git利用sha-1加密算法,对每一个文件生成一个唯一的字符序列(明文大小不超过2^64位,对于普 ...

  4. Git 内部原理之 Git 对象哈希

    在上一篇文章中,将了数据对象.树对象和提交对象三种Git对象,每种对象会计算出一个hash值.那么,Git是如何计算出Git对象的hash值?本文的内容就是来解答这个问题. Git对象的hash方法 ...

  5. Git对象

    上一节了解了 Git 的一个重要的概念:暂存区. 暂存区是一个介于工作区和版本库的中间状态,当执行commit时,实际上是将暂存区的内容提交大版本库中,而执行add则是将本次变更添加到暂存区. 上一节 ...

  6. git分布式版本控制系统权威指南学习笔记(三):简单了解git对象、head以及sha1sum

    文章目录 git对象(简单了解) 对象是存在哪里的? head和master分支 上面的hash值怎么来的? git对象(简单了解) 每次提交都有tree.parent.author.committe ...

  7. 『现学现忘』Git对象 — 15、blob对象介绍

    目录 (一)Git对象的存放目录 (二)Git中对象类型 (三)blob对象 1.blob对象说明 (1)blob对象定义 (2)blob对象说明 (3)blob对象存储的方式 (4)查看blob对象 ...

  8. 『现学现忘』Git对象 — 16、Tree对象详解

    目录 1.Tree对象介绍 2.Tree对象说明 (1)初始化一个新的本地版本库 (2)创建一个树对象(重点) (3)创建第二个文件(重点) (4)将第一个树对象加入暂存区,使其成为新的树对 3.总结 ...

  9. 『现学现忘』Git对象 — 17、Commit对象

    目录 1.Commit对象介绍 2.Commit对象说明 3.本地库中对象之间的关系 4.总结 5.练习 6.本文用到的命令总结 1.Commit对象介绍 现在来介绍最后一种Git对象commit对象 ...

  10. 『现学现忘』Git基础 — 18、Git对象的总结

    目录 1.Git操作最基本的流程 2.工作目录中文件的状态 3.Git效率说明 提示:前面三篇文章已经分别的对blob对象.tree对象.commit对象进行了详细的说明,这篇文章我们总结一下,Git ...

随机推荐

  1. 根据路径获得文件名以及Aspose.Cells.dll操作excel 以及使用iTextSharp.text.pdf.PdfReader.dll对PDF的操作

    string result = Regex.Match(str,@"[^\\]+$").Value;//正则表达式 this.listBox1.Items.Add(Path.Get ...

  2. thinkphp利用行为扩展实现监听器

    1.在User/login函数中添加如下代码 tag('login_listener',$result); //alert('success', '恭喜,登录成功', U('xx/yy')); 去掉跳 ...

  3. 子iframe刷新父ifrmae的方法

    //子iframe刷新父ifrmae的方法parent.location.href="";parent.location.reload();

  4. window.print打印指定div

    window.print可以打印网页,但有时候我们只希望打印特定控件或内容,怎么办呢? 首先我们可以把要打印的内容放在div中,然后用下面的代码进行打印. <html> <head& ...

  5. (剑指Offer)面试题27:二叉搜索树与双向链表

    题目: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 二叉树的定义如下: struct TreeNode{ int val; Tr ...

  6. jquery获取表单的值

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. XHTML编码规范

    1.所有的标记都要有结束标记. 2.所有标记的名称和属性名称都必须使用小写 3.所有的的标记必须合理嵌套 4.属性值必须用引号包含起来 5.需要设置的属性都要给一个值 XHTML 规定所有属性都必须有 ...

  8. JavaBean技术

    引言: JavaBeans与一般Java类的编写类似. 在JSP页面中要使用JavaBeans,只要在JSP页面中使用JavaBeans的操作标记就可以了. JavaBeans的编写和使用非常简单,下 ...

  9. 系列文章--SharePoint 开发教程

    SharePoint 2013 图文开发系列之入门教程 学习地址:http://www.cnblogs.com/jianyus/p/3461719.html 里面有2007.2010.2013各个版本 ...

  10. cocos2dx 兼容性

    报错: Caused by: java.lang.UnsatisfiedLinkError: Couldn't load cocos2dcpp: findLibrary returned null 因 ...