Git学习——Git对象及游标的简单介绍

本文原博客:http://www.hackeris.me/?p=59git

————————————————————————————————————————————————segmentfault

读《Git权威指南》——笔记spa

git log -1 --pretty=raw

能够看到有三个哈希值所表示的对象,分别是此次提交的标识、目录树、本次提交的父提交code

咱们能够用命令对象

git cat-file -t 9c0ac

来查看该哈希值所表示的是什么对象。(其中哈希值不用所有输入,只需输入前面一小段不冲突的字符)图片

请输入图片描述

请输入图片描述

get

git cat-file -p 9c0ac

查看该对象的内容博客

请输入图片描述

当查看tree的对象的时候,发现里面还包含这另一个对象blob,这个对象保存着a.txt的内容。咱们查看一下it

请输入图片描述

git log --pretty=raw --graph 9c0ac

能够查看该对象的父提交的跟踪链,到了最后一个的时候便没有parent对象。ast

请输入图片描述

git branch

查看分支

请输入图片描述
可见,当前有两个分支。一个是master,和pre分支

git log HEAD -1

查看当前游标的指向。(HEAD称为游标,用于指向不一样分支中的不一样提交。下面会详细说明)

git log master -1

查看当前master的提交标识

git log pre -1

查看当前pre的提交标识

请输入图片描述

若加上参数 --pretty=oneline 则显示精简模式

请输入图片描述

可见,当前的HEAD游标和master的指向是同样的,因此当前的HEAD是指向master的最后一个提交

如今咱们切换一下分支
查看当前master的提交标识

git checkout pre

请输入图片描述

可见,切换分支以后,游标HEAD就指向pre的最新的提交了。

下面咱们来看看这些对象都存放了在哪里

find .git -name HEAD -o -name master -o -name pre

再把他们输出查看

cat .git/HEAD
cat .git/refs/heads/master
cat .git/refs/heads/pre

请输入图片描述

可见,HEAD是指向了refs/heads/master(而不是一个具体的哈希值)。与上面一一对应。彻底相同。

还介绍多一个底层命令,用语查看引用对应的提交ID(哈希值):

git rev-parse HEAD

请输入图片描述
————————————————————————————————————————————————

本文原博客:http://www.hackeris.me/?p=59

相关文章
相关标签/搜索