# Git命令之tag的使用

2,100 阅读2分钟

前言

通常在软件发布的时候会打一个tag,用于标注这次发布的相关信息, 这样做的好处是,将来如果这个版本出现了问题,可以通过tag迅速定位到当前版本,进行错误修复。

今天我们就来聊一聊Git中的tag

tag是什么

tag表面意思是标签的意思,不难理解,就是为某种事务打上标记的意思。

Git中,tag与分支(branch)类似,都是指向某一个commit提交对象的引用或者说指针

tag的作用

我们常常在代码封板时,使用Git 创建一个tag ,这样一个不可修改的历史代码版本就像被我们封存起来一样,不论是运维发布拉取,或者以后的代码版本管理,都是十分方便的

tag分类

  • 轻量级标签:单纯给某一个commit打一个标签
  • 附注标签:与轻量级标签相比,它具有更多的信息。

tag的使用

  1. 查看本地tag

    $ git tag -l
    
  2. 查看远程tag

    $ git ls-remote --tags origin
    
  3. 查看某个tag的详细信息(如果没有会新建一个本地tag,指向最近一次提交的commit id)

    $ git tag <tagName>
    
  4. 创建tag

    $ git tag <tagName>
    

    Tipstag是打在最近的一次Commit记录上的,比如我最近一次提交记录的Commit ID是 abcde,那么执行完 git tag <tagName>命令后,tag就打在了abcde这个Commit ID上。

  5. 未指定commit创建tag

    $ git tag <tagName> <commit id>
    

    Tipstag默认是指向最近一次提交的commit id ,我们如果想要为指定的commit id创建tag需要指定commit id

  6. 创建标注tag

    $ git tag <tagName> <commit id> -a -m 'tag description'
    

    Tips-a 表示要建立带有附注的标签,-m附注信息

  7. tag同步到远程

    $ git push origin <tagName>
    

    同步所有tag到远程

    $ git push origin --tags
    
  8. 删除tag

    $ git tag -d <tagName>
    

    删除远程tag

    $ git push origin :refs/tags/<tagName>
    
  9. tag检出

    $ git checkout -b <branchName> <tagName>
    

    Tips:从tagName上检出并创建本地分支branchName