标签(Tags)指的是某个分支某个特定时间点的状态,是对某一个提交记录的 固定 “指针” 引用。一经创建,不可移动,存储在工作区根目录下 .git\refs\tags
。可以理解为某一次提交(编号)的别名,常用来标记版本。所以发布时,一般都会打一个版本标签,作为该版本的快照,指向对应提交 commit
。
当项目达到一个关键节点,希望永远记住那个特别的提交快照,你可以使用 git tag
给它打上标签。比如我们今天终于完成了 V 1.1 V1.1 V1.1 版本的开发、测试,并成功上线了,那就可给今天最后这个提交打一个标签 V 1.1 V1.1 V1.1,便于版本管理。
默认标签是打在最新提交的 commit
上的,如果希望在指定的提交上打标签则带上提交编号(commit id
):git tag v0.9 f52c633
。
|
|
---|---|
git tag |
查看标签列表 |
git tag -l ‘a*’ |
查看名称是 a 开头的标签列表,带查询参数 |
git show [tagname] |
查看标签信息 |
git tag [tagname] |
创建一个标签,默认标签是打在最新提交的 commit 上的 |
git tag [tagname] [commit id] |
新建一个 tag 在指定 commit 上 |
git tag -a v5.1 -m ‘v5.1版本’ |
创建标签 v5.1 ,-a 指定标签名,-m 指定说明文字 |
git tag -d [tagname] |
删除本地标签 |
git checkout v5.1 |
切换标签,同切换分支 |
git push [remote] v5.1 |
推送标签,标签不会默认随代码推送推送到服务端 |
git push [remote] --tags |
提交所有 tag |
如果要推送某个标签到远程,使用命令 git push origin [tagname]
,或者,一次性推送全部到远程:git push origin --tags
注意:标签总是和某个
commit
挂钩。如果这个commit
既出现在master
分支,又出现在dev
分支,那么在这两个分支上都可以看到这个标签。
# tag
$ git tag -a 'v1' -m 'v1版本'
$ cat .git/refs/tags/v1
a2e2c9caea35e176cf61e96ad9d5a929cfb82461
# 查看标签列表
$ git tag
v1