允许有意义的名称到一个特定的版本库中的标签操作。
前期准备
- 创建新文件“label.txt”,并提交三个版本。
- 查看状态
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18$ git log
commit 40cddef63a739782e17e9f3da7ece29b9ec14a94
Author: yongfei.hu <yongfeiuall@163.com>
Date: Tue Nov 17 10:21:02 2015 +0800
3rd commit
commit adab21f28df71ab3850882fdad7f4c649fa79366
Author: yongfei.hu <yongfeiuall@163.com>
Date: Tue Nov 17 10:20:42 2015 +0800
2nd commit
commit eada2115194c8012be0db423d825d550f7102e09
Author: yongfei.hu <yongfeiuall@163.com>
Date: Tue Nov 17 10:20:05 2015 +0800
1st commit
创建标签
轻量标签(lightweight)
这个非常简单,切换到要打标签的分支上,用以下命令:1
$ git tag v1.0
附注标签(annotated)
是带有说明的标签,通常建议创建附注标签。1
$ git tag -a v1.0 -m 'my version 1.0'
-a指定标签名
-m 选项指定了一条将会存储在标签中的信息。后期打标签
有时候,如果忘了打标签,也可以对过去的提交打标签。方法是找到历史提交的commit id,然后打标签:1
$ git tag -a v0.9 -m "my version 0.9" adab21f
查看标签
列出标签
在 Git 中列出已有的标签是非常简单直观的。1
2
3$ git tag
v0.9
v1.0查看标签信息
可以用git show查看标签信息 1
2
3
4
5
6
7
8
9
10
11
12$ git show v0.9
tag v0.9
Tagger: yongfei.hu <yongfeiuall@163.com>
Date: Tue Nov 17 10:36:57 2015 +0800
my version 0.9
commit adab21f28df71ab3850882fdad7f4c649fa79366
Author: yongfei.hu <yongfeiuall@163.com>
Date: Tue Nov 17 10:20:42 2015 +0800
2nd commit
提交标签
默认情况下,git push
命令并不会传送标签到远程仓库服务器上。 在创建完标签后你必须显式地推送标签到共享服务器上。 这个过程就像共享远程分支一样。1
$ git push origin v0.9
如果想要一次性推送很多标签,也可以使用带有--tags
选项的git push
命令。 这将会把所有不在远程仓库服务器上的标签全部传送到那里。1
$ git push origin --tags
删除标签
标签打错了,也可以用git tag -d <tagname>
删除。1
2$ git tag -d v1.0
Deleted tag 'v1.0' (was 40cddef)
如果标签已经推送到远程,按以下方式删除。
先从本地删除
1
2$ git tag -d v1.0
Deleted tag 'v1.0' (was 40cddef)从远程删除
用命令git push origin :refs/tags/<tagname>
来实现。1
$ git push origin :refs/tags/v1.0
检出标签
如果你想要工作目录与仓库中特定的标签版本完全一样,可以使用git checkout -b [branchname] [tagname]
在特定的标签上创建一个新分支。1
2$ git checkout -b develop v0.9
Switched to a new branch 'develop'