
- Git 入門
- Git - 首頁
- Git - 版本控制
- Git - 基本概念
- Git - 命令列
- Git - 安裝
- Git - 首次設定
- Git - 基本命令
- Git - 獲取幫助
- Git - 工具
- Git - 速查表
- Git - 術語
- Git 分支
- Git - 簡述分支
- Git - 建立新分支
- Git - 切換分支
- Git - 分支與合併
- Git - 合併衝突
- Git - 管理分支
- Git - 分支工作流程
- Git - 遠端分支
- Git - 跟蹤分支
- Git - 變基
- Git - 變基 vs. 合併
- Git - 合併提交
- Git 操作
- Git - 克隆操作
- Git - 標籤操作
- Git - 別名操作
- Git - 提交操作
- Git - 暫存操作
- Git - 移動操作
- Git - 重新命名操作
- Git - 推送操作
- Git - 拉取操作
- Git - Fork 操作
- Git - 修補程式操作
- Git - Diff 操作
- Git - 狀態操作
- Git - 日誌操作
- Git - HEAD 操作
- Git - origin master
- Git 撤銷
- Git - 撤銷更改
- Git - Checkout
- Git - Revert
- Git - Reset
- Git - 恢復操作
- Git - Rm
- Git - Switch 操作
- Git - Cherry-pick
- Git - Amend
- 伺服器上的 Git
- Git - 本地協議
- Git - 智慧 HTTP 協議
- Git - 簡單 HTTP 協議
- Git - SSH 協議
- Git - Git 協議
- Git - 在伺服器上獲取 Git
- Git - 設定伺服器
- Git - 守護程序
- Git - GitWeb
- Git - GitLab
- Git - 第三方託管選項
- 分散式 Git
- Git - 分散式工作流程
- Git - 為專案做貢獻
- Git - 維護專案
- 自定義 Git
- Git - 配置
- Git - 鉤子
- Git - 屬性
- Git - Init
- Git - Commit
Git 標籤
Git 標籤是一種突出專案歷史中重要事件的方法。
除了解釋許多 readily available 的標籤型別外,它還將瞭解如何查詢現有標籤、新增新標籤以及刪除它們。這些點通常與版本釋出(如 v1.0、v2.1 等)或專案開發中的里程碑相關。
標籤的基本語法
與隨著新增新提交而可能隨時間推移移動的分支不同,標籤是不可變的——它始終指向同一個提交。
Git 中有兩種型別的標籤
輕量級標籤:就像書籤一樣,它們只是指向特定提交的直接指標。它們不儲存任何額外資訊,例如訊息或標籤者詳細資訊。
附註式標籤:可以將它們視為更復雜的書籤。它們儲存額外的元資料,例如標籤者的姓名、日期和訊息。當我們標記版本時,附註式標籤是首選型別,因為它們更具描述性並提供更多歷史資訊。
在 Git 中建立和管理標籤的語法很簡單。這是一個示例
git tag <tag-name>
例如
git tag v1.0
此命令將建立一個名為v1.0的輕量級標籤,該標籤指向當前分支中的最新提交。
要建立附註式標籤,請使用`-a`選項
git tag -a <tag-name> -m "Tag message"
例如
git tag -a v1.0 -m "Initial release"
這將建立一個名為v1.0的附註式標籤,並附加訊息`初始版本`。
Git 標籤型別
如前所述,主要有兩種型別的標籤:輕量級標籤和附註式標籤。讓我們詳細探討這兩種型別。
輕量級標籤
輕量級標籤本質上是指向特定提交的指標。這就像建立一個不會移動的分支。輕量級標籤沒有任何附加的元資料,例如訊息或時間戳,它們主要用於臨時或快速標記任務。
要建立輕量級標籤,只需執行
git tag v1.0
此標籤現在將指向當前分支中的最新提交。我們還可以透過提供其雜湊值來標記特定提交
git tag v1.0 <commit-hash>
輕量級標籤易於建立,但缺乏附註式標籤提供的詳細資訊。因此,通常不建議將它們用於標記重要版本。
附註式標籤
另一方面,附註式標籤是儲存元資料的完整 Git 物件。當我們建立附註式標籤時,Git 會記錄建立標籤的人員、建立標籤的時間以及附帶的訊息。
在 Git 中生成附註式標籤時,我們可以使用-m選項提供標籤訊息。
git tag -a v1.0 -m "Version 1.0 release"
這將建立一個名為`v1.0`的標籤,並帶有註釋“1.0 版本釋出”。要檢視附註式標籤的詳細資訊,請執行以下命令
git show v1.0
這顯示了標籤者資訊、標記日期和註釋訊息後的提交資訊。
標記較舊的提交
即使我們在提交之後又進行了其他操作,我們仍然可以標記它。即有時,我們可能需要回到歷史記錄並標記較舊的提交。為此,只需在建立標籤時提供提交雜湊值即可
git tag v1.0 <commit-hash>
例如
git tag -a v1.0-m "Version 1.0 release"
此命令將在指定的提交上建立一個附註式標籤,允許我們追溯地標記專案歷史記錄中的重要點。
將標籤推送到遠端倉庫
預設情況下,當我們執行git push時,標籤不會自動推送到遠端倉庫。要推送標籤,我們需要在推送命令中明確包含它們。
要將單個標籤推送到遠端倉庫,請使用以下命令
git push origin <tagname>
例如
git push origin v1.0
要將所有標籤推送到遠端倉庫,請使用--tags選項
git push origin --tags
刪除標籤
使用以下命令從本地倉庫刪除標籤。即使執行此操作後,遠端伺服器上仍然存在該標籤。
git tag -d <tagname>
例如
git tag -d v1.0
如果標籤已推送到遠端倉庫,我們也需要從遠端倉庫中刪除它。要從遠端伺服器刪除標籤,請遵循以下命令。
使用以下命令是第一種方法。
git push origin --delete <tagname>
使用此方法,遠端伺服器名稱(通常為origin)後跟命令git push。
但是,我們在分支名稱的位置指定了{<tagname>}。
透過這樣做,Git 會被指示從遠端伺服器刪除給定的{<tagname>}標籤。
例如
git push origin --delete v1.0
檢出標籤
我們可以執行git checkout標籤以檢視與該標籤連結的檔案版本。
但是,此操作會使我們的倉庫處於分離的 HEAD狀態,這會產生某些不利影響。
git checkout t1.9a Note: switching to 't1.9a'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c <new-branch-name> Or undo this operation with : git switch - Turn off this advice by setting config variable advice.detachedHead to false Head is now at cc086fa user interface added
具體來說,在此狀態下進行的任何更改和提交都不會是任何分支的一部分,只能透過其唯一的提交雜湊值訪問,這不會修改標籤。
$ git checkout -b type2 t2.0 Previous HEAD position was cc086fa user interface added Switched to a new branch 'type2'
如果我們需要進行修改,例如修復早期版本的錯誤,通常建議建立一個分支。
Git 標籤最佳實踐
要有效地使用 Git 標籤,請遵循以下最佳實踐
對版本釋出使用附註式標籤:附註式標籤提供更多資訊和上下文,使其成為標記重要點(如版本釋出)的理想選擇。
遵循一致的命名約定:為標籤採用一致的命名方案,例如使用 v1.0、v1.1 等。這有助於保持標籤井然有序且易於理解。
將標籤推送到遠端倉庫:確保將標籤推送到遠端倉庫,以便其他協作者可以看到並使用它們。
標記主要版本和次要版本:標記主要版本和次要版本(例如,v1.0 和 v1.0.1)有助於識別程式碼在不同穩定性級別上的狀態。