Git 學習(七)標籤管理

Git 學習(七)標籤管理

  

  發佈版本時,一般會先在版本庫中打一個標籤,這樣,就惟一肯定了打標籤時刻的版本。取出某個標籤的版本,就是把那個打標籤的時刻的歷史版本取出來。因此,標籤也是版本庫的一個快照。git

  Git的標籤雖然是版本庫的快照,但其實它就是指向某個commit的指針(跟分支雷同,但分支能夠移動,標籤不可);建立和刪除標籤都是瞬間完成的。

github

  本文具體說明 Git 中是如何建立標籤及操做標籤的。安全

  

建立標籤

Git 標籤的命令很簡單,首先簡單瀏覽下方的 Git 命令:學習

git tag                        查看標籤  spa

git tag <tag name> <commit id>  建立標籤,若無commit id 默認當前
指針

git tag -a <tag name> -m <msg>    建立標籤,且添加標籤信息code

git show <tag name>                      查看標籤具體信息blog

可作一些簡單的實踐操做,未建立過標籤直接用  git tag  顯示爲空; 排序

在master分支上建立一個 v1.0 的標籤,以後查看,以下開發

   打標籤就是如此容易


默認標籤是打在最新提交的commit上的(當前分支快照)。有時候,若是忘了打標籤須要補打,須要找到歷史提交的commit id,而後打上就能夠了。

 

咱們來操做下其餘分支下打標籤,切換至dev分支(若無,可新建該分支),若在該分支下開發出 v1.1版本,須打v1.1標籤,可操做   git tag v1.1

  再次查看標籤,可看到目前有兩個標籤了

切換至master分支,再次查看,可見 也有兩個標籤;標籤是記錄在整個Git庫的,分支並不影響。

咱們在master分支上 commit 兩次,並打當前分支爲 v2.0, 目前有三個標籤了

然而如今,突然想起以前有次commit須要打上 v1.2 的標籤,得補打標籤,那如何操做呢?得知道以前那次提交的commit id,  git log  以下

 得知 commitid  , 取前7位便可 ffe7d78

  注意,標籤不是按時間順序列出,而是按字母排序的。(v2.0標籤就是打在v1.2以前的)

注意,標籤不能重複打,若已存在,會提示 ,但容許同一commit id打多個標籤

 

查看標籤內容,如 git show v1.1 , 可見以下,可得知該標籤的commit id及與當前版本的差別

 

建立標籤時,可添加備註信息即如  

 

可用 -s  表示用PGP簽名標籤,必須首先安裝gpg(GnuPG),若是沒有找到gpg,或者沒有gpg密鑰對,就會報錯;有關簽名方式請自行搜索研究。

   

git tag -s <tag name> -m <msg>    建立簽名標籤,且添加標籤信息

 

刪除標籤

標籤如果打錯能夠直接刪除,命令以下:

git tag -d <tag name> -m <msg>    刪除標籤

如刪除 v1.2 標籤    

建立的標籤都只存儲在本地,不會自動推送到遠程。因此,打錯的標籤能夠在本地安全刪除。有關遠程標籤詳見下文。

 

遠程標籤

正如前文所言,本地的標籤不會推送到遠程。來看下遠程的標籤顯示,以下 github, 目前該庫無任何tags

 

 

若是要推送標籤到遠程,使用命令以下:

git push origin <tag name>         推送某個標籤至遠程

 

git push origin --tags             推送全部標籤至遠程

 

 

本地庫有三個標籤 , 可以使用單個標籤推送,以下:

 

  推送後    

  所有推送 

 

若是標籤已經推送到遠程,要刪除遠程標籤就麻煩一點,先從本地刪除;再從遠程刪除。刪除命令也是push,可是格式以下:

 

git push origin :refs/tags/<tagname>             刪除遠程標籤

相關文章
相關標籤/搜索