git引用初識 HEAD 分支 tag

2022-06-26 22:30:29 字數 2112 閱讀 6373

git將引用儲存在檔案中,原理很簡單

引用指的是對提交記錄的引用

提交記錄雜湊值唯一標識

每個引用用乙個檔案表示,檔案中儲存其引用的提交記錄的雜湊值

遠端分支

taghead

每個git倉庫只有乙個head

表示當前工作區檢出的檔案(或者說檔案在修改之前)是屬於哪個提交記錄

git checkout 指令,就是在改變head的指向

copy

$git checkout master

switched to branch 'master'

$cat .git/head

ref: refs/heads/master

$cat .git/refs/heads/master

89d496d44f93d107a7eb404890cd15a14ba8845d

checkout master後, head指向master, master指向89d496

copy

$ git checkout milestone

note: checking out 'milestone'.

you are in 'detached head' state.

head is now at eecc5fe milestone

$ cat .git/refs/tags/milestone

eecc5fe060e5b86957f931fd931beae4f206d4eb

$ cat .git/head

eecc5fe060e5b86957f931fd931beae4f206d4eb

checkout tag milestone後,head指向eecc5f, detached head

出處:git將引用儲存在檔案中,原理很簡單

引用指的是對提交記錄的引用

提交記錄雜湊值唯一標識

每個引用用乙個檔案表示,檔案中儲存其引用的提交記錄的雜湊值

遠端分支

taghead

每個git倉庫只有乙個head

表示當前工作區檢出的檔案(或者說檔案在修改之前)是屬於哪個提交記錄

git checkout 指令,就是在改變head的指向

copy

$git checkout master

switched to branch 'master'

$cat .git/head

ref: refs/heads/master

$cat .git/refs/heads/master

89d496d44f93d107a7eb404890cd15a14ba8845d

checkout master後, head指向master, master指向89d496

copy

$ git checkout milestone

note: checking out 'milestone'.

you are in 'detached head' state.

head is now at eecc5fe milestone

$ cat .git/refs/tags/milestone

eecc5fe060e5b86957f931fd931beae4f206d4eb

$ cat .git/head

eecc5fe060e5b86957f931fd931beae4f206d4eb

checkout tag milestone後,head指向eecc5f, detached head

git 使用詳解(8) 分支HEAD

有人把 git 的分支模型稱為 必殺技特性 而正是因為它,將 git 從版本控制系統家族裡區分出來。git 有何特別之處呢?git 的分支可謂是難以置信的輕量級,它的新建操作幾乎可以在瞬間完成,並且在不同分支間切換起來也差不多一樣快。和許多其他版本控制系統不同,git鼓勵在工作流程中頻繁使用分支與合...

git 使用詳解(8) 分支HEAD

有人把 git 的分支模型稱為 必殺技特性 而正是因為它,將 git 從版本控制系統家族裡區分出來。git 有何特別之處呢?git 的分支可謂是難以置信的輕量級,它的新建操作幾乎可以在瞬間完成,並且在不同分支間切換起來也差不多一樣快。和許多其他版本控制系統不同,git鼓勵在工作流程中頻繁使用分支與合...

Git命令中HEAD 和HEAD 區別

說明 本篇文章是對pro git 7.1 git 工具 選擇修訂版本 章節中 祖先引用 的總結。git命令中head 和head 區別。使用場景 如果想獲取乙個提交的第幾個父提交使用head 數字,想獲取乙個提交的上幾個提交使用head head和head或head 和head 並沒有區別,只有he...