git tag

git tag命令用于创建, 列出, 删除验证使用GPG签名的标签对象.

注解

  • 创建的标签存储在.git/refs/tags路径下;
  • 可以为特定的版本创建一个标签, 便于使用. 比如版本号更新时可以创建一个version1.0, version1.2之类的标签, 这样在以后回顾的时候会比较方便.
  • 列出已有的标签

    git taggit tag -l.

  • 创建标签

    Git使用的标签使用有两种类型:

    • 轻量级的(lightweight);
    • 含附注的(annotated).

    轻量级标签就像是个不会变化的分支, 实际它就是个指向特定commit的引用. 而含附注标签, 实际上是存储在仓库中的一个独立对象, 它有自身的校验和信息, 包含着标签的名字, 电子邮件地址和日期, 以及标签说明, 标签本身也允许使用GNU Privacy Guard(GPG)来签署或验证.

    一般我们都建议使用含附注型的标签, 以便保留相关信息; 当然, 如果只是临时性加注标签, 或者不需要旁注额外信息, 用轻量级标签也没问题.

    • git tag <tagname> commit - 创建一个轻量级标签.

      为指定的commit创建一个标签, 如果没有指定commit则就是当前HEAD所指向的commit.

    • git tag -a <tagname> -m "message" commit - 创建一个含附注的标签对象.

      • -a选项表示创建一个含附注的标签对象;
      • -m选项指定对标签的说明, Git会将此说明一同保存在标签对象中. 如果没有给出该选项, Git会启动文本编辑器以供输入标签说明.

    注解

    • 除非使用-f选项, 否则不能创建已经存在的标签;
    • 可以使用git show命令查看相应标签的信息;
    • 可以在后期为早先的某此提交加注标签.
  • 删除标签

    git tag -d <tagname>
    
  • 分享标签

    默认情况下, git push并不会把标签推送到远端服务器上, 只有通过显式命令才能分享标签到远端仓库.

    要推送指定标签, 执行以下命令:

    git push origin [tagname]
    

    如果要一次推送所有本地新增的标签, 可以使用--tags选项:

    git push origin --tags
    

    现在, 其他人克隆共享仓库或拉去数据同步后, 也会看到这些标签.