17-git-13-tag

概述

标签永远指向某个提交记录。

当软件发布新的大版本,或者是修正一些重要的 Bug 或是增加了某些新特性,我们可以打一个标签,标识了某个特定的位置。

标签不会随着新的提交而移动。你也不能检出到某个标签上面进行修改提交,它就像是提交树上的一个锚点,标识了某个特定的位置。

标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。

命令

新建标签

普通标签

新建一个tag在当前commit

如果你不指定提交记录,Git 会用 HEAD 所指向的位置。

git tag [tag]
git tag v1

新建一个tag在指定commit

git tag [tag] [commit]
git tag v1 C1

注解标签

创建带有说明的标签,用-a指定标签名,-m指定说明文字

git tag -a [VERSION] -m "released [VERSION]"
git tag -a v0.1 -m "version 0.1 released"
git tag -a v0.1 -m "version 0.1 released" 1094adb

删除标签

删除本地标签

git tag -d <tagname>
git tag -d v1.0

删除远程标签

删除本地标签后,推送到远程

git push <remote> :refs/tags/<tagname>
git push origin :refs/tags/v1.0

删除远程标签

git push origin --delete <tagname>

查看标签

列出所有tag,标签不是按时间顺序列出,而是按字母排序的。

git tag

查看tag信息

git show [tag]

提交标签

提交指定tag

git push [remote] [tag]
git push origin v1

提交所有tag

git push [remote] --tags
git push origin --tags

使用标签

新建一个分支,指向某个tag

git checkout -b [branch] [tag]