Git Reference引用詳解
首先看一下當前提交歷史,程式碼如下:
[Shell] 純文字檢視 複製程式碼$ git log --oneline
程式碼執行效果截圖如下:
上面程式碼其實是縮寫形式,可以使用如下兩種方式替代:
[Shell] 純文字檢視 複製程式碼$ git log master --oneline
另外一種方式:
[Shell] 純文字檢視 複製程式碼$ git log 6c59aab --oneline
執行效果和第一種方式執行效果完全相同。很容易辨識,最後一種效果是最差的,因為sha-1值難以記憶。
所以考慮到sha-1值難以記憶和書寫,就可以使用一個名字簡單的檔案來記錄這個值,這樣我們就可以使用這個簡單的名字替代sha-1值,我們就可以稱這些檔案為引用,也可以叫做指標。
一.分支引用:
分支就是一種引用,.git目錄下的refs/heads目錄中存放的就是當前所有分支:
檔案中儲存的就是對應commit提交的sha-1值,程式碼如下:
[Shell] 純文字檢視 複製程式碼$ cat .git/refs/heads/master
程式碼執行效果截圖如下:
關於分支更多內容可以參閱Git branch分支實質一章節。
二.HEAD引用:
關於HEAD更多內容參閱Git HEAD是什麼一章節。
HEAD是一種特殊的引用,通常情況下它執行一個分支。
當前處於master分支,下面來看一下HEAD中的內容,程式碼如下:
[Shell] 純文字檢視 複製程式碼$ cat .git/HEAD
程式碼執行效果截圖如下:
HEAD也有不指向分支的情況,具體參閱Git detached HEAD介紹一章節。
三.Tag引用:
關於Tag標籤的具體用法參閱git tag標籤用法詳解一章節。
標籤分為輕量級標籤和帶有附註的標籤,下面給當前提交打上兩個標籤:
輕量級標籤:
[Shell] 純文字檢視 複製程式碼$ git tag tagLearn 68a5550
帶附註的標籤:
[Shell] 純文字檢視 複製程式碼$ git tag annotatedTag f5c53c0 -a -m "螞蟻部落"
上面分別建立一個輕量級標籤和一個帶附註的標籤。
輕量級標籤是一個直接指向commit提交的引用,程式碼如下:
[Shell] 純文字檢視 複製程式碼$ cat .git/refs/tags/tagLearn
程式碼執行效果截圖如下:
帶附註的標籤是一個物件,.git/refs/tags/中的引用首先會指向這個tag物件,程式碼如下:
[Shell] 純文字檢視 複製程式碼$ cat .git/refs/tags/annotatedTag
程式碼執行效果截圖如下:
下面這串字元就是tag物件的sha-1值。
四.remote引用:
如果跟蹤一個遠端分支, Git會把最後一次推送到這個remote遠端伺服器的每個分支的值都記錄在 refs/remotes 目錄下。這些引用都指向遠端伺服器上的對應分支。
相關文章
- Git reflog 引用日誌使用詳解Git
- 方法引用(Method reference)和invokedynamic指令詳細分析
- iOS中的Reference Counting詳解iOS
- 詳解C++引用C++
- Java四大引用詳解:強引用、軟引用、弱引用、虛引用Java
- Git詳解Git
- Git HEAD詳解Git
- git使用詳解Git
- C++ :引用計數(reference count) 實現C++
- C++引用型別詳解C++型別
- Java中的方法引用詳解Java
- git init命令詳解Git
- git stash用法詳解Git
- git checkout命令詳解Git
- Git物件概念詳解Git物件
- git status命令詳解Git
- git add命令詳解Git
- Git 命令大全,詳解!Git
- git checkout 命令詳解Git
- git remote 命令詳解GitREM
- git fetch & pull詳解Git
- git ssh配置詳解Git
- PHP 引用詳解 - 踩坑與妙用PHP
- C++中指標與引用詳解C++指標
- ABAP 程式語言裡的 Reference Semantic - 引用語義
- Visual Studio 使用GIT詳解Git
- git diff --stat命令詳解Git
- 詳解git rebase,讓你走上git大神之路Git
- 快速瞭解C# 8.0中“可空引用型別(Nullable reference type)”語言特性C#型別Null
- Git詳解及github的使用Github
- Git基礎知識詳解Git
- git log提交歷史詳解Git
- git diff 輸出格式詳解Git
- Git tag標籤用法詳解Git
- git config配置檔案詳解Git
- git show-branch命令詳解Git
- Git 學習之命令詳解Git
- Git 常用命令詳解Git