扯一扯Git的标签Tag

扯一扯Git的标签

今天来扯一下Git的标签(即 Tag),它是什么,它的作用,它和分支(Branch)的区别,最后是它的API。

1 是什么

Tag是Git版本管理中的一个标签/标记,它本质上是指向某个commit的指针。

2 作用

Tag主要⽤于发布版本的管理,⼀个版本发布之后,我们可以为Git打上 V.1.0.1,V.1.0.2 ... 这样的标签,并且是针对某个分支中的某个commit打标签。
我们想对某个特定的commit添加标记,比如要标识版本信息,这时候就可以用的Git中的打标签功能。打Tag就类似于我们看书放书签一样,以后可以直接用Tag找到提交的位置,不然的话,就只有看commit信息定位到指定位置,而commit是很多很多的,不方便查找和定位。

3 和分支(Branch)的区别

tag感觉跟branch有点相似,但是本质上和分⼯上是不同的:
tag 对应某次commit, 是⼀个点,是不可移动的。
branch 对应⼀系列commit,是很多点连成的⼀根线,有⼀个HEAD 指针,是可以依靠 HEAD 指针移动的。
所以,两者的区别决定了使⽤⽅式,改动代码⽤ branch ,不改动只查看⽤ tag。
tag 和 branch 的相互配合使⽤,有时候起到⾮常⽅便的效果,例如:已经发布了 v1.0 v2.0 v3.0 三个版本,这个时候,我突然想不改现
有代码的前提下,在 v2.0 的基础上加个新功能,作为 v4.0 发布。就可以检出 v2.0 的代码作为⼀个 branch ,然后作为开发分⽀。

4 API

  1. 为某个提交打标签

    1. 为指定的提交ID上打标签 为提交ID前几位,也可以是完整的ID:
      git tag -a <tagname> -m "版本介绍" <commit id>
      
    2. 在本地为当前最新的提交打标签(后面不跟commit id,默认是最新 commit)
      git tag -a <tagname> -m '版本介绍'
      
  2. 查看标签

    1. 查看本地标签
    • 查看所有本地标签:
      git tag
      
    • 按照关键字查看,其中 v1.* 就是类似模糊匹配的关键字:
      git tag -l `"v1.*"`
      
    1. 查看远程标签
      git ls-remote --tags
      
  3. 查看标签详情

    git show <tagname>
    
  4. 推送标签到远程服务器上

    # push单个特定的tag (origin代表remote名字,可以省略,表示使用默认remote)
    git push [origin] <tagname>
    # push所有tag
    git push [origin] --tags
    
  5. 删除标签
    可以一次删除多个标签

    git tag -d <tagname1> [<tagname2> <tagname3> ...]
    
  6. 检出标签
    可以根据标签,检出相应的代码

    git checkout <tagname>
    

参考链接:https://wenku.baidu.com/view/9269e62b7fd184254b35eefdc8d376eeaeaa17f5.html
https://blog.csdn.net/huangbin123/article/details/119670322

posted @ 2022-06-02 10:03  mediocrep  阅读(222)  评论(0编辑  收藏  举报
既然选择了远方,便只顾风雨兼程!