摘要:git标签的使用
标签有什么用
tag是git版本库的一个标记,指向某个commit的指针。
tag主要用于发布版本的管理,一个版本发布之后,我们可以为git打上 v.1.0.1 v.1.0.2 …这样的标签。
tag感觉跟branch有点相似,但是本质上和分工上是不同的:
tag 对应某次commit, 是一个点,是不可移动的。
branch 对应一系列commit,是很多点连成的一根线,有一个HEAD 指针,是可以依靠 HEAD 指针移动的。
所以,两者的区别决定了使用方式,改动代码用 branch ,不改动只查看用 tag。
tag 和 branch 的相互配合使用,有时候起到非常方便的效果,例如:已经发布了 v1.0 v2.0 v3.0 三个版本,这个时候,我突然想不改现有代码的前提下,在 v2.0 的基础上加个新功能,作为 v4.0 发布。就可以检出 v2.0 的代码作为一个 branch ,然后作为开发分支。
查看标签
查看仓库中的所有标签
使用-l
对标签查看进行过滤
创建标签
轻量标签
- 给当前所处commit创建一个名字为TAG-NAME的标签
如何检出并切换commit?
即可切换到对应COMMIT-ID的commit
- 使用下列命令即可查看对应标签创建时的提交信息和对应的commit信息
附注标签
附注标签是存储在 Git 数据库中的一个完整对象,它们是可以被校验的,其中包含打标签者的名字、电子邮件地址、日期时间,此外还有一个标签信息,并且可以使用GNU Privacy Guard(GPG)签名并验证。通常会建议创建附注标签,这样你可以拥有以上所有信息。但是如果你只是想用一个临时的标签,或者因为某些原因不想要保存这些信息,那么也可以用轻量标签。
1
| git tag -a TAG-NAME -m TAG-MESSAGE
|
推送标签到远程服务器
1
| git push REMOTE-NAME TAG-NAME
|
1
| git push REMOTE-NAME --tags
|
删除标签
将删除操作和远程同步
1
| git push REMOTED-NAME :refs/tags/TAG-NAME
|
1
| git push REMOTE-NAME -d TAG-NAME
|
检出标签
无冥冥之志者,无昭昭之明;无惛惛之事者,无赫赫之功。