Git学习笔记第五篇,主要参照廖雪峰的Git教程,好记性不如烂笔头,学习成果形成文档,加油!
1 创建标签
为什么要打标签?
发布一个版本时,我们通常先在版本库中给要发布的这个版本打一个标(tag
),这样这个标签就唯一确定了打标签时刻的版本。将来无论什么时候,取用某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照,将打标签那一时刻的版本库“拍照”记录下来。
实际上,Git中的标签就是一个指向某个commit
的指针(这一点跟分支是相似的,不同之处在于tag
指向某个固定的commit
,而分支指向的commit
是可变的,比如有新的提交时,分支名就指向了新的commit
,版本回退时,分支名又指向了目标版本的commit
),既然Git中有了commit id
来标识每一个提交的版本,那为什么还要引入tag呢?
这是因为,commit id
是一串乱七八糟的数字,不好记忆,而使用tag就方便多了,比如v1.0
打标签分为以下几个步骤:以在master分支打标签为例:
序号 | 作用 | 指令 |
---|---|---|
1 | 切换到要打标签的分支master | git checkout master |
1 | 打标签v1.0 | git tag v1.0 |
使用git tag
可以查看当前分支上所有的标签,默认情况下,标签是打在最新的commit
上。
如果要对历史commit 67ed35
打标签,需要使用:
git tag v0.9 67ed35
此外,还可以打上带有说明的标签:
git tag -a v0.9 -m "tag with mesg" 67ed35
使用git show v1.0
来查看某个标签的详细信息
2 操作标签
推送本地标签到远程:git push origin v1.0
推送所有本地标签到远程:git push origin --tags
删除本地标签:git tag -d v1.0
删除远程标签,要先按照上面一条删除对应的本地标签,然后:
git push origin: refs/tags/v1.0