Git 可以给历史中的某一个提交打上标签,以示重要。 比较有代表性的是人们会 使用这个功能来标记发布结点(v1.0 等等)。
1、列出标签
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
2、创建标签
Git 使用两种主要类型的标签:轻量标签 与 附注标签
- 轻量标签很像一个不会改变的分支 - 它只是一个特定提交的引用
git tag v1.4
git tag v1.4 commitHash
- 附注标签是存储在 Git 数据库中的一个完整对象。 它们是可以被校验的;其中包含打标签者的名字、电子邮件地址、日期时间;还有一个标签信息;通常建议创建附注标签,这样你可以拥有以上所有信息;但是如果你只是想用一个临时的标签,或者因为某些原因不想要保存那些信息,轻量标签也 是可用的
git tag -a v1.4
git tag -a v1.4 commitHash
git tag -a v1.4 commitHash -m 'my version 1.4'
3、查看特定标签
git show
可以显示任意类型的对象(git 对象 树对象 提交对象 tag 对象) git show tagname
4、远程标签
默认情况下,git push
命令并不会传送标签到远程仓库服务器上。 在创建完 标签后你必须显式地推送标签到共享服务器上。你可以运行
git push origin [tagname]
如果想要一次性推送很多标签,也可以使用带有 --tags
选项的 git push
命令。这将会把所有不在远程仓库 服务器上的标签全部传送到那里。
git push origin --tags
5、删除标签
要删除掉你本地仓库上的标签,可以使用命令 git tag -d <tagname>
。 例如,可以使用下面的命令删除掉 一个轻量级标签: git tag -d v1.4
应该注意的是上述命令并不会从任何远程仓库中移除这个标签,你必须使用 git push <remote> :refs/tags/<tagname>
来更新你的远程仓库:
git push origin :refs/tags/v1.4
6、检出标签
如果你想查看某个标签所指向的文件版本,可以使用 git checkout
命令
git checkout tagname
虽然说这会使你的仓库处于“分离 头指针(detacthed HEAD)”状态。在“分 离头指针”状态下,如果你做了某些更改然后提交它们,标签不会发生变化,但你的新提交将不属于任何分支,并且将无法访问,除非访问确切的提交哈希。因此, 如果你需要进行更改——比如说你正在修复旧版本的错误——这通常需要创建一个新分支:
git checkout -b version2