打Tag
2021/5/20
打Tag
Git 可以给历史中的某一个提交打上标签,以示重要。比较有代表性的是人们会使用这个功能来标记发布结点(v1.0 等等)
列出标签
git tag
git tag -l 'v1.8.5*'
# v1.8.5 v1.8.5-rc0 v1.8.5-rc1 v1.8.5-rc2 v1.8.5-rc3 v1.8.5.1 v1.8.5.2 v1.8.5.3创建标签
Git 使用两种主要类型的标签:轻量标签与附注标签。轻量标签很像一个不会改变的分支,它只是一个特定提交的引用
git tag v1.0
git tag v1.0 commitHash
附注标签是存储在 Git 数据库中的一个完整对象。它们是可以被校验的;其中包含打标签者的名字、电子邮件地址、日期时间;还有一个标签信息;通常建议创建附注标签,这样你可以拥有以上所有信息;但是如果你只是想用一个临时的标签,或者因为某些原因不想要保存那些信息,轻量标签也是可用的
git tag -a v1.4
git tag -a v1.4 commitHash
git tag -a v1.4 commitHash -m 'my version 1.4查看特定标签
git show可以显示任意类型的对象
- git 对象
- 树对象
- 提交对象
- tag 对象

git show tagname
远程标签
默认情况下,git push命令并不会传送标签到远程仓库服务器上。在创建完标签后你必须显式地推送标签到共享服务器上。你可以运行
git push origin [tagname]如果想要一次性推送很多标签,也可以使用带有--tags选项的git push命令。这将会把所有不在远程仓库服务器上的标签全部传送到那里
git push origin --tags删除标签
删除标签 要删除掉你本地仓库上的标签,可以使用命令
git tag -d <tagname>例如,可以使用下面的命令删除掉一个轻量级标签:
git tag -d v1.0
应该注意的是上述命令并不会从任何远程仓库中移除这个标签,你必须使用
git push <remote> :refs/tags/<tagname>来更新你的远程仓库:
git push origin :refs/tags/v1.4检出标签
如果你想查看某个标签所指向的文件版本,可以使用git checkout命令
git checkout tagname
虽然说这会使你的仓库处于“分离头指针(detacthed HEAD)”状态。在“分离头指针”状态下,如果你做了某些更改然后提交它们,标签不会发生变化,但你的新提交将不属于任何分支,并且将无法访问,除非访问确切的提交哈希。因此,如果你需要进行更改——比如说你正在修复旧版本的错误——这通常需要创建一个新分支:
git checkout -b version2
