git 打标签

git 打标签

1. 显示已有标签

$ git tag 
v0.11.5
v0.11.5.sp1
v0.12.0
v0.12.sp1
v0.13
v0.14.0
v0.14.1

-l 显示指定标签

$ git tag -l 'v0.11.*'
v0.11.5
v0.11.5.sp1

2. 新建标签

Git 使用的标签有两种类型:轻量级的(lightweight)和含附注的(annotated)。轻量
级标签就像是个不会变化的分支,实际上它就是个指向特定提交对象的引用。而含附注标
签,实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,
电子邮件地址和日期,以及标签说明

-a 创建annotated标签,-m 选项则指定了对应的标签说明

Administrator@6XIGRIJ0JJDRMSP MINGW64 /e/guotengfei/git/RAP (release)
$ git tag -a v0.15.0 -m 'my 0.15.0'

Administrator@6XIGRIJ0JJDRMSP MINGW64 /e/guotengfei/git/RAP (release)
$ git tag
v0.11.5
v0.11.5.sp1
v0.12.0
v0.12.sp1
v0.13
v0.14.0
v0.14.1
v0.15.0

git show 命令查看相应标签的版本信息,并连同显示打标签时的提交对象。

$ git show v0.15.0
tag v0.15.0
Tagger: guotengfei <[email protected]>
Date:   Sat Feb 3 15:38:17 2018 +0800

my 0.15.0

commit e45a5fe0e53806369ed7d8a4b5dd373c3e663414 (HEAD -> release, tag: v0.15.0, origin/release, origin/HEAD)
Merge: 2fdd4f79 61afa50c
Author: 墨智 <[email protected]>
Date:   Tue Nov 22 10:39:32 2016 +0800

    Merge branch 'master' into release

git tag默认创建lightweight标签

Administrator@6XIGRIJ0JJDRMSP MINGW64 /e/guotengfei/git/RAP (release)
$ git tag v0.16.0

Administrator@6XIGRIJ0JJDRMSP MINGW64 /e/guotengfei/git/RAP (release)
$ git show v0.16.0
commit e45a5fe0e53806369ed7d8a4b5dd373c3e663414 (HEAD -> release, tag: v0.16.0, tag: v0.15.0, origin/release, origin/HEAD)
Merge: 2fdd4f79 61afa50c
Author: 墨智 <mozhi.gyy@alibaba-inc.com>
Date:   Tue Nov 22 10:39:32 2016 +0800

    Merge branch 'master' into release

3. 签署标签

如果你有自己的私钥,还可以用 GPG 来签署标签,只需要把之前的 -a 改为 -s (译注:取 Signed 的首字母)即可。

$ git tag -s v0.17.0 -m 'my signed tag'
gpg: directory `/c/Users/Administrator/.gnupg' created
gpg: new configuration file `/c/Users/Administrator/.gnupg/gpg.conf' created
gpg: WARNING: options in `/c/Users/Administrator/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/c/Users/Administrator/.gnupg/secring.gpg' created
gpg: keyring `/c/Users/Administrator/.gnupg/pubring.gpg' created
gpg: skipped "guotengfei <[email protected]>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
error: unable to sign the tag

失败了,哎,没私钥。
git tag -v [tag-name] (译注:取 verify 的首字母)的方式验证已经签署的标签


4. 后期加标签

Administrator@6XIGRIJ0JJDRMSP MINGW64 /e/guotengfei/git/RAP (release)
$ git log -3
commit e45a5fe0e53806369ed7d8a4b5dd373c3e663414 (HEAD -> release, tag: v0.16.0, tag: v0.15.0, origin/release, origin/HEAD)
Merge: 2fdd4f79 61afa50c
Author: 墨智 <mozhi.gyy@alibaba-inc.com>
Date:   Tue Nov 22 10:39:32 2016 +0800

    Merge branch 'master' into release

commit 2fdd4f798bc2e29a49d4f88c6eef1243b34f1990
Author: 墨智 <mozhi.gyy@alibaba-inc.com>
Date:   Mon Nov 21 11:03:34 2016 +0800

    更新阿里云广告

commit 61afa50c5dc23980e304a9b7cf935f562fbc45be (origin/v0.14.12, origin/master)
Author: 墨智 <mozhi.gyy@alibaba-inc.com>
Date:   Mon Nov 21 10:58:28 2016 +0800

    fix #746

Administrator@6XIGRIJ0JJDRMSP MINGW64 /e/guotengfei/git/RAP (release)
$ git tag -a v0.18.0 2fdd4f798

Administrator@6XIGRIJ0JJDRMSP MINGW64 /e/guotengfei/git/RAP (release)
$ git tag -l v0.18.0
v0.18.0

5. 分享标签

默认情况下,git push 并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。其命令格式如同推送分支,运行 git push origin [tagname] 即可。
如果要一次推送所有(本地新增的)标签上去,可以使用 –tags 选项

猜你喜欢

转载自blog.csdn.net/qq_27623337/article/details/79247565