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

相關文章
相關標籤/搜索