通过tag我们可以更好的管理项目的版本历史,tag与branch最大的区别在于,tag 像一个标记 是静态的,对应某次commit。而branch是动态的,之后我们还可以在这个branch上进行commit。
标签的基本操作
1、 创建标签
git tag tag名称
git tag v1.0
上面的命令会基于当前HEAD 指向的commit id 创建一个名称为v1.0的tag。
如果我们想基于某个具体的commit id 创建tag 可以这样:
git tag tag名称 commitId
如下:
git tag v0.9 fc436cc0ff1f
上面的tag是一种普通tag,是轻量级的,有点类似于commitid的别名,不会产生object。
还有一种是注解tag,会产生object。
git tag -a tag名称 -m "描述信息" commitId
git tag -a v0.8 -m"这是名称为v0.8的标签" babc907e48e038
-a 选项表明了创建的是注解(annotated) tag。
2、查看标签
git tag
显示所有的标签
git show tag名称
可以看到标签信息和与之对应的提交信息
前面说了普通tag和注解tag,那么它们之间有什么区别的?我们可以使用git show命令查看下注解tag
可以看到我们不仅可以看到提交信息,还可以看到谁打的tag以及tag描述这些额外信息。
3、 删除标签
git tag -d 标签名称
4、检出标签
也许我们希望可以基于某个tag切一个分支出来,如下:
git checkout -b 新分支名 标签名
5、推送标签
默认情况下git push不会把标签推送到远程,我们需要显示的指定
git push <remote> --tags
该命令会把所有的标签都推送到远程git push <remote> 标签名
该命令会把指定标签推送到远程