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>             删除远程标签

相关文章
相关标签/搜索