By francis_hao Nov 19,2016
当一个项目commit了若干次到了一个可以发布版本的时候一般会给当前的分支状态打一个标签,就像我们常常见到的V1.0之类的。
Git 使用的标签有两种类型:轻量级的(lightweight)和含附注的(annotated)。轻量级标签就像是个不会变化的分支,实际上它就是个指向特定提交对象的引用。而含附注标签,实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,电子邮件地址和日期,以及标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证。一般我们都建议使用含附注型的标签,以便保留相关信息;当然,如果只是临时性加注标签,或者不需要旁注额外信息,用轻量级标签也没问题。
查看当前已经存在的标签
$ git tag
显示所有以v1.4.2开头的标签
$ git tag –l ‘v1.4.2*‘
添加含附注的标签tag_name 和其描述信息。
$ git tag –a tag_name –m "tag description"
添加一个轻量级标签,不需要-a,-s和-m选项
git tag vx.x
查看相应标签的版本信息,并连同显示打标签的提交对象
$ git show vx.x
删除本地tag
$ git tag –d vx.x
删除远端tag
$ git push origin :refs/tags/vx.x
实际上,我们也可以在之前的commit条上补充一个tag,命令不需要在添加-m选项,轻量级的
$ git tag tag_name hash_value
默认情况下,git push 并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。其命令格式如同推送分支
$ git push origin [tagname]
$ git push origin v1.5
如果要一次推送所有本地新增的标签上去,可以使用 --tags 选项:
$ git push origin --tags
$ git push origin --tags (分支呢?不用管吗)
本文由 刘英皓 创作,采用 知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆 许可协议进行许可。欢迎转载,请注明出处:
转载自:http://www.cnblogs.com/yinghao1991/