标签的作用
通常我们在发布正式软件的时候会打一个tag,tag会记录版本的
commit id
,如果后面出现问题,可以根据tag来进行回溯,这样比直接回溯commit id
要方便的多。
标签的命令操作
创建标签
创建标签
如果没有填写
commit id
,那么标签默认是打在最新提交的commit上的,即HEAD。
git tag <tag> [commit id]
在实际开发中,我们有时候可能忘了打标签怎么办?
先通过git log
找到忘了打标签的commit记录commit id
,再通过git tag
给这个commit打上标签就ok了。
创建一个带有备注信息的tag
-a:指定标签名,-m:指定说明文字
git tag -a <tag> -m "message"
查看标签
查看某个标签的具体信息
git show tag
查看所有标签
git tag
切换到某个tag
跟分支一样,可以直接切换到某个tag去。这个时候不位于任何分支,处于游离状态,建议可以考虑基于这个tag创建一个分支
git checkout <tag>
删除标签
删除本地标签
git tag -d <tag>
删除远程仓库标签
如果某个标签已经推送到远程中,要删除远程标签就要稍微麻烦一点,要先从本地删除,然后再从远程删除
先从本地删除
git tag -d <tag>
再从远程删除
git push origin :refs/tags/<tag>
推送标签到远程仓库
推送某个标签到远程仓库
git push origin <tag>
一次性推送全部尚未推送到远程的本地标签
git push origin --tags
git tag与branch的区别
tag 指向一个特定的commit 节点,这个节点是不会改变的。
branch也指向一个节点,但是这个节点是随着不断的提交代码而不断的改变,它始终指向我们最新的提交的commit节点
注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。