Git(十一)、标签管理

一、简介

    1、发布一个版本时,通常需要先在版本库打一个标签(tag),这样就唯一确定了打标签时刻的版本。将来无论什么时候取某个标签的版本,就是把那个打标签时刻的历史版本取出来,所以,标签也是版本库的一个快照
    2、Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。
     3、 Git有commit,为什么还要引入tag?

        “请把上周一的那个版本打包发布,commit号是6a5819e...”

        “一串乱七八糟的数字不好找!”

        如果换一个办法:

        “请把上周一的那个版本打包发布,版本号是v1.2”

        “好的,按照tag v1.2查找commit就行!”

        所以,tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。


二、创建标签

    1、首先切换到需要打标签的分支上
         

    2、然后敲击命令: git tag <tagname>(v1.0是名称,可更改) git tag查看所有标签
         

    3、默认标签是打在最新的commit上的,如果今天周五,想要在周一的提交上打tag,则
        【1】 git tag v0.9 <commit-id>
        【2】git tag -a v0.8 -m "测试tag" <commit-id>(-a指定名称,-m说明文字)
           
         
    4、注意:标签不是按时间顺序列出,是按照字母顺序列出的,可以用 git show <tagname>查看标签信息
         

    5、其他命令
还可以通过 -s 用私钥签名一个标签:
$ git tag -s v0.2 -m "signed version 0.2 released" fec145a

签名采用PGP签名,因此,必须首先安装gpg(GnuPG),如果没有找到gpg,或者没有gpg密钥对,就会报错:

gpg: signing failed: secret key not available
error: gpg failed to sign the data
error: unable to sign the tag

如果报错,请参考GnuPG帮助文档配置Key。

用命令git show <tagname>可以看到PGP签名信息:

$ git show v0.2
tag v0.2
Tagger: Michael Liao <askxuefeng@gmail.com>
Date:   Mon Aug 26 07:28:33 2013 +0800

signed version 0.2 released
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (Darwin)

iQEcBAABAgAGBQJSGpMhAAoJEPUxHyDAhBpT4QQIAKeHfR3bo...
-----END PGP SIGNATURE-----

commit fec145accd63cdc9ed95a2f557ea0658a2a6537f
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Thu Aug 22 10:37:30 2013 +0800

    branch test

用PGP签名的标签是不可伪造的,因为可以验证PGP签名。验证签名的方法比较复杂,这里就不介绍了。


三、操作标签

    1、删除标签 git tag -d <tagname>
         

    2、推送某个标签到远程库: git push origin <tagname>
          推送全部标签到远程库:git push origin --tags
         

    3、推送后可以在github上查看到:
         

         
    4、删除远程仓库的标签
         【1】先删除本地:git tag -d v0.8
         【2】再删除远程库:git push origin :refs/tags/v0.8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值