Git 对象

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 <[email protected]> 1400603791 +0800
committer Eric Wong <[email protected]> 1400603791 +0800

which version checked in?

$ git cat-file -p ad70^

tree 190d840dd3d8fa319bdec6b8112b0957be7ee769
author Eric Wong <[email protected]> 1400583459 +0800
committer Eric Wong <[email protected]> 1400583459 +0800

initialized

$ git rev-parse ad70^{tree}

f58da9a820e3fd9d84ab2ca2f1b467ac265038f9

$ git rev-parse ad70^^{tree}

190d840dd3d8fa319bdec6b8112b0957be7ee769

Git 对象,布布扣,bubuko.com

时间: 2024-12-19 10:09:01

Git 对象的相关文章

git对象类型及存储结构讲解

本文git版本1.9.6 一.git的基本对象类型 二.查看git对象信息 三.理解git存储结构 1.Git中有四种基本对象类型,组成了Git更高级的数据结构: blobs每个blob代表一个(版本的)文件,blob只包含文件的数据,而忽略文件的其他元数据,如名字.路径.格式等. trees每个tree代表了一个目录的信息,包含了此目录下的blobs,子目录(对应于子trees),文件名.路径等元数据.因此,对于有子目录的目录,git相当于存储了嵌套的trees. commits每个commi

Git 对象 和checkout 和stash的笔记

6.1 Git 对象库探秘 通过查看日志的详尽输出 ,我们会惊讶的看到 许多魔幻的数字,这些魔幻数字 其实 就是SHA1 哈希值 一个提交包括 三个哈希值表示的对象ID: commit  e696bbb2f834d1c49efb0272315cbfb717c89207 :表示这是本次提交的唯一标识. tree    56c886493b939f2d2b3500aab92ef372f824db0a:表示本次提交所对应的目录树 parent  59e62a3c485508b3381f80144998

Git 初学三(git对象与git重置)

对象 1. Git branch 是分支管理的主要命令,也可以显示当前的工作分支 2. Master 指向的是一个提交id(最新提交的),可以从任何开始建立一条历史跟踪路径,用一个文件指向这个链条的最新提交. 3. Git rev-parse 可以用于显示引用对应的提交ID. 4. Git cat-file blob HEAD: xx.txt 查看xx.txt内容 5. 补充linux知识:最常用用法:touch file 如果file存在,使用touch指令可更改这个文件或目录的日期时间,包括

如何查看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

Git 3 - Git对象 The Git Object

每个对象都有三个属性:对象的类型.大小.内容.内容取决于对象的类型. blob:存储数据的. tree:像一个目录.指向了其他的目录. commit:以某一个版本的状态写到数据仓库里面去. 用hash值作为blob的文件名 内容和名字分离,从各个地方降低磁盘的占用.

git 常用命令整理

git config --global user.name "xxx" # 配置用户名 git config --global user.email "[email protected]" # 配置邮件 git config --global color.ui true # git status等命令自动着色 git config --global color.status auto git config --global color.diff auto git c

Git常用命令大全,迅速提升你的Git水平

初始化本地git仓库(创建新仓库) git init 配置用户名 git config --global user.name "xxx" 配置邮件 git config --global user.email "[email protected]" git status等命令自动着色 git config --global color.ui true git config --global color.status autogit config --global c

Git 版本管理工具命令速查

转自:http://www.jb51.net/article/55442.htm 一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释 git remote add origin [email protected]:ndshowgit push origin mast

Linux上层应用-&gt;git独奏

参考书籍:<git权威指南> git初始化 设置git基本参数 通常会在用户home目录下创建文件".gitconfig",以类似配置文件的格式来存放设置. 1.设置用户名及邮箱(在提交时会显示这些信息) git config --global user.name "kcmetercec" git config --global user.email "[email protected]" 2.git命令输出中打开颜色显示 git c