Git tag 標籤

admin發表於2018-07-23

Git中的標籤與分支類似,都是指向某一個commit提交物件的引用或者說指標。

標籤分為兩種,下面分別做一下介紹。

一.輕量級標籤:

首先檢視一下當前分支的提交歷史記錄,程式碼如下:

[Shell] 純文字檢視 複製程式碼
$ git log --oneline

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201807/23/004221knj6jcry04tntbhc.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

現在給c2新增一個tag標籤,程式碼例項如下:

[Shell] 純文字檢視 複製程式碼
$ git tag tagLearn e577355

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201807/23/004318n20xxnzwdlfygrxt.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

是不是很簡單,這已經給指定commit物件打上了一個標籤。

如果在命令的最後沒有指定要打標籤的commit物件,那麼就給當前所在的commit打標籤:

[Shell] 純文字檢視 複製程式碼
$ git tag defaultTag

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201807/23/004358o10k7b5oxxojoddf.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上面介紹的就是輕量級標籤,因為它就是單純給某一個commit打一個標籤,再無其他資訊。

二.有附註標籤(annotated tag):

與上面輕量級標籤相比,它具有更多的資訊。

[Shell] 純文字檢視 複製程式碼
$ git tag annotatedTag e577355 -a -m "螞蟻部落"

程式碼解析:

(1).-a:表示要建立帶有附註的標籤。

(2).-m:類似於普通提交讓你輸入的附註資訊,如果省略,那麼就彈出VIM編輯器。

三.兩種型別tag標籤的差別:

資訊雲含量不同,下面分別看一下:

[Shell] 純文字檢視 複製程式碼
$ git show lightTag

執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201807/23/004500oulfvumzuory6mb5.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

輕量級標籤僅提供指向commit提交的資訊。

[Shell] 純文字檢視 複製程式碼
$ git show annotatedTag

執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201807/23/004540l007yn7us2q6znsl.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

帶有附註的標籤會提供更多的資訊,比如誰打的標籤,什麼時候打的標籤等。

總結如下:

(1).兩種型別的標籤都是引用。

(2).輕量級標籤直接指向某個commit物件。

(3).附註標籤是指向一個tag物件,然後這個tag物件再指向某個commit物件。

(4).標籤的作用就類似於給某個軟體一個版本一樣,比如node的各個版本,每一個版本和其他版本都有一些明顯的區別。

相關閱讀:

(1).Git引用參閱Git References一章節。

(2).標籤和分支的區別參閱Git tag標籤與branch分支的區別一章節。

相關文章