一、什麼是 Git 標籤?
Git 標籤是一個固定的指向 commit 的引用,類似於一個代碼庫的“里程碑”或“版本號”,提供了一個簡單易懂的方式來標記重要的提交。標籤是以輕量(Lightweight)標籤和註解(Annotated)標籤兩種形式進行發布,輕量標籤很像一個不會改變的分支,它只是一個特定提交的引用而已,而註解標籤是存儲在 Git 數據庫中的一個完整的對象,它包含標籤本身的名字、電子郵件地址、日期時間、附註以及可以對其進行數字簽名而生成的 GPG(GNU Privacy Guard)簽名等信息。
下面列出一些常用的標籤命令。
1. 列出所有標籤:git tag
2. 新建標籤:git tag [tagname]
3. 基於 commit 新建標籤:git tag [tagname] [commit hash]
4. 查看標籤信息:git show [tagname]
5. 刪除標籤:git tag -d [tagname]
6. 將標籤推送到遠程倉庫:git push origin [tagname]
7. 刪除遠程倉庫標籤:git push origin :refs/tags/[tagname]
8. 從遠程倉庫拉取標籤:git fetch origin [tagname]
9. 檢出標籤:git checkout [tagname]
二、如何打輕量標籤?
輕量標籤非常適合快速打一個類似於版本號的標記。創建一個輕量標籤的方式非常簡單,只需要使用 “git tag [tagname]” 命令即可。一個常見錯誤是在試圖打輕量標籤時輸入 “-a” 選項或 “-m” 選項。這些選項用於創建註解標籤,而輕量標籤不支持註解。
下面演示如何創建輕量標籤。
# 列出當前的提交歷史
$ git log --oneline
1c03820 (HEAD -> master) update readme file
18e62db add new function
b7e9a3e first commit
# 打一個 v1.0 的輕量標籤,指向當前的 HEAD
$ git tag v1.0
# 列出所有標籤
$ git tag
v1.0
三、如何打註解標籤?
註解標籤提供了完整的標籤信息,並存儲在 Git 數據庫中。它們是由一個指定版本的提交、一個標籤名字、一個註解信息和可能的數字簽名組成。註解標籤適合於發布新版本或者里程碑。
下面演示如何創建註解標籤。
# 打一個 v2.0 的標籤並添加註解信息
$ git tag -a v2.0 -m "Release version 2.0"
# 查看標籤信息
$ git show v2.0
tag v2.0
Tagger: Zhang San
Date: Fri Oct 11 14:11:25 2019 +0800
Release version 2.0
commit 1c03820a1750b41c27f9be76477d0cdef267ea56 (HEAD -> master)
Author: Zhang San
Date: Fri Oct 11 13:30:47 2019 +0800
update readme file
四、如何分享標籤?
一個標籤默認是存在本地的,不會被自動推送到遠程服務器。如果你想要分享這個標籤,你必須通過執行 “git push [remote] [tagname]” 命令顯式地推送到遠程服務器,或者通過執行 “git push –tags” 命令推送所有(本地)標籤。
下面演示如何分享標籤。
# 推送單個標籤
$ git push origin v1.0
# 推送所有本地標籤
$ git push --tags
五、如何刪除標籤?
刪除一個本地標籤非常簡單,只需在刪除標籤命令中指定標籤的名稱即可:”git tag -d [tagname]”。但是,如果已經將標籤推送到遠程倉庫,你需要在推送命令中明確指定它,並使用冒號前綴加上標籤名稱(”git push [remote] :refs/tags/[tagname]”)。
下面演示如何刪除標籤。
# 刪除本地標籤
$ git tag -d v2.0
# 從遠程倉庫刪除標籤
$ git push origin :refs/tags/v2.0
六、如何檢出特定標籤?
檢出標籤意味着切換到標籤所指向的 commit,這個 commit 可以是普通的提交對象,也可以是一個特殊的 Git 對象,如分支(branch)或特定的提交。當你檢出一個標籤時,你會進入“分離頭指針”的狀態,這意味着你不再位於任何分支上,並且不會自動推進提交歷史(即你所做的每個操作都會在特定的分離頭指針上直接引用)。
下面演示如何檢出標籤。
# 檢出 v1.0 標籤並進入"分離頭指針"狀態
$ git checkout tags/v1.0
# 檢出並創建基於標籤 v1.0 的分支
$ git checkout -b new_branch tags/v1.0
原創文章,作者:VAKMI,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/331614.html