前言
通常在软件发布的时候会打一个tag,用于标注这次发布的相关信息, 这样做的好处是,将来如果这个版本出现了问题,可以通过tag迅速定位到当前版本,进行错误修复。
今天我们就来聊一聊Git中的tag。
tag是什么
tag表面意思是标签的意思,不难理解,就是为某种事务打上标记的意思。
在Git中,tag与分支(branch)类似,都是指向某一个commit提交对象的引用或者说指针
tag的作用
我们常常在代码封板时,使用Git 创建一个tag ,这样一个不可修改的历史代码版本就像被我们封存起来一样,不论是运维发布拉取,或者以后的代码版本管理,都是十分方便的
tag分类
- 轻量级标签:单纯给某一个
commit打一个标签 - 附注标签:与轻量级标签相比,它具有更多的信息。
tag的使用
-
查看本地
tag$ git tag -l -
查看远程
tag$ git ls-remote --tags origin -
查看某个
tag的详细信息(如果没有会新建一个本地tag,指向最近一次提交的commit id)$ git tag <tagName> -
创建
tag$ git tag <tagName>Tips:
tag是打在最近的一次Commit记录上的,比如我最近一次提交记录的Commit ID是 abcde,那么执行完git tag <tagName>命令后,tag就打在了abcde这个Commit ID上。 -
未指定
commit创建tag$ git tag <tagName> <commit id>Tips:
tag默认是指向最近一次提交的commit id,我们如果想要为指定的commit id创建tag需要指定commit id -
创建标注
tag$ git tag <tagName> <commit id> -a -m 'tag description'Tips:
-a表示要建立带有附注的标签,-m附注信息 -
将
tag同步到远程$ git push origin <tagName>同步所有
tag到远程$ git push origin --tags -
删除
tag$ git tag -d <tagName>删除远程
tag$ git push origin :refs/tags/<tagName> -
从
tag检出$ git checkout -b <branchName> <tagName>Tips:从
tagName上检出并创建本地分支branchName