如何在 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”,這是最後一個提交。我們還可以看到標籤者姓名和標籤訊息詳細資訊。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP