如何在 Git 中標記提交?


Git 提交是一個 40 位十六進位制的 SHA1 雜湊值。很多時候我們需要為其新增書籤,因為提交雜湊值很難記住。這就是可以使用標籤的地方。標籤可以用來命名提交。換句話說,標籤是可用於識別特定提交的標籤。例如,“v1.0、RC1.0”是一些命名提交的方式。

標籤可以分為以下幾種:

  • 輕量級標籤

  • 帶註釋的標籤

輕量級標籤

輕量級標籤也稱為簡單標籤。這些標籤使用名稱來引用特定的提交。輕量級標籤對儲存庫是私有的。它們只是指向特定提交的指標。換句話說,它們只儲存其引用的提交的雜湊值,而不儲存任何資訊。輕量級標籤不會作為 Git 中的單獨物件儲存。

可以使用 **git tag** 命令建立標籤。使用此命令的語法如下:

$ git tag <tag_name> <commit_hash>

以下示例建立一個標籤“RC1.0”,並將其與具有雜湊值“c81c9ab”的提交關聯

$ git tag RC1.0 c81c9ab

讓我們透過執行以下命令來驗證這一點:

$ git tag             // lists all tags
$ git log −−oneline   // lists all commits, one commit per line

以下輸出表明儲存庫中存在名為“RC1.0”的標籤,並且它指向提交“c81c9ab”。

089ddf4 (HEAD −> master) new line
c81c9ab (tag: RC1.0) This is a short description
8a3d6ed first commit

當我們建立輕量級標籤時,將在“.git/refs/tags 資料夾”內建立與標籤同名的檔案。可以透過執行以下命令來驗證:

$ ls .git/refs/tags

輸出將是:

RC1.0
$ cat .git/refs/tags/RC1.0

輸出顯示建立了一個名為“RC1.0”的標籤,並且它指向特定的提交。

c81c9abe7c4c8273a11ab7d20a3aac0be54bf00c

帶註釋的標籤

帶註釋的標籤儲存額外的元資料,例如作者姓名、發行說明、標籤訊息和日期。與輕量級標籤不同,帶註釋的標籤作為 Git 中的單獨物件儲存。這些標籤允許您儲存與該特定標籤相關的資訊。帶註釋的標籤有一個標籤訊息,就像提交有一個提交訊息一樣。建立帶註釋的標籤的語法如下:

$ git tag −a <tag_name> −m <tag_message>

**-a** 指定正在建立的標籤是帶註釋的標籤。**-m** 標誌表示標籤訊息,類似於提交訊息。

以下示例建立一個名為 v1.1 的帶註釋的標籤,並向其新增訊息。

$ git tag −a v1.1 −m 'my version 1.1'

許多 Git 命令僅適用於帶註釋的標籤,因為它們被視為永久物件。帶註釋的標籤儲存為 tag-type 物件,該物件指向一個提交。我們可以透過執行以下命令來驗證:

$ ls .git/refs/tags

以下輸出顯示“.git/refs/tags 資料夾”包含我們的“v1.1”標籤檔案。

RC1.0 v1.1

當我們使用 **cat** 命令顯示內容時,它會顯示一個雜湊值。

$ cat .git/refs/tags/v1.1 //view content of the tag file

輸出是

fa2c7b87859db191440e97ec87e47b212c44945d

讓我們使用以下命令驗證此雜湊值的型別。

$ git cat−file −t fa2c   // shows type of the object represented by this hash
$ git cat−file −p fa2c   // prints the contents of the SHA1 hash

上述命令的輸出將是:

// output of git cat−file −t fa2c
tag
// output of git cat−file −p fa2c
object 089ddf457ded2496a5ad5ac4384a93a109b9b7e2
type commit
tag v1.1
tagger Kiran <kiran.p@gmail.com>1612112082

輸出顯示“v1.1”標籤檔案中包含的“fa2c”物件是一個標籤物件。當我們使用 **cat-file -p** 命令顯示“fa2c” blob 物件的詳細資訊時,它指向提交“089dd”,這是最後一個提交。我們還可以看到標籤者姓名和標籤訊息詳細資訊。

更新於:2021 年 2 月 20 日

4K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.