Git仓库-标签管理

允许有意义的名称到一个特定的版本库中的标签操作。

前期准备

  1. 创建新文件“label.txt”,并提交三个版本。
  2. 查看状态
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $ git log
    commit 40cddef63a739782e17e9f3da7ece29b9ec14a94
    Author: yongfei.hu <yongfeiuall@163.com>
    Date: Tue Nov 17 10:21:02 2015 +0800

    3rd commit

    commit adab21f28df71ab3850882fdad7f4c649fa79366
    Author: yongfei.hu <yongfeiuall@163.com>
    Date: Tue Nov 17 10:20:42 2015 +0800

    2nd commit

    commit eada2115194c8012be0db423d825d550f7102e09
    Author: yongfei.hu <yongfeiuall@163.com>
    Date: Tue Nov 17 10:20:05 2015 +0800

    1st commit

创建标签

默认标签是打在最新提交的commit上的。

  • 轻量标签(lightweight)
    这个非常简单,切换到要打标签的分支上,用以下命令:

    1
    $ git tag v1.0
  • 附注标签(annotated)
    是带有说明的标签,通常建议创建附注标签。

    1
    $ git tag -a v1.0 -m 'my version 1.0'

    -a指定标签名
    -m 选项指定了一条将会存储在标签中的信息。

  • 后期打标签
    有时候,如果忘了打标签,也可以对过去的提交打标签。方法是找到历史提交的commit id,然后打标签:

    1
    $ git tag -a v0.9 -m "my version 0.9" adab21f

查看标签

  • 列出标签
    在 Git 中列出已有的标签是非常简单直观的。

    1
    2
    3
    $ git tag
    v0.9
    v1.0
  • 查看标签信息
    可以用git show 查看标签信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $ git show v0.9
    tag v0.9
    Tagger: yongfei.hu <yongfeiuall@163.com>
    Date: Tue Nov 17 10:36:57 2015 +0800

    my version 0.9

    commit adab21f28df71ab3850882fdad7f4c649fa79366
    Author: yongfei.hu <yongfeiuall@163.com>
    Date: Tue Nov 17 10:20:42 2015 +0800

    2nd commit

提交标签

默认情况下,git push命令并不会传送标签到远程仓库服务器上。 在创建完标签后你必须显式地推送标签到共享服务器上。 这个过程就像共享远程分支一样。

1
$ git push origin v0.9

如果想要一次性推送很多标签,也可以使用带有--tags选项的git push命令。 这将会把所有不在远程仓库服务器上的标签全部传送到那里。

1
$ git push origin --tags

删除标签

标签打错了,也可以用git tag -d <tagname>删除。

1
2
$ git tag -d v1.0
Deleted tag 'v1.0' (was 40cddef)

如果标签已经推送到远程,按以下方式删除。

  1. 先从本地删除

    1
    2
    $ git tag -d v1.0
    Deleted tag 'v1.0' (was 40cddef)
  2. 从远程删除
    用命令git push origin :refs/tags/<tagname>来实现。

    1
    $ git push origin :refs/tags/v1.0

检出标签

如果你想要工作目录与仓库中特定的标签版本完全一样,可以使用git checkout -b [branchname] [tagname]在特定的标签上创建一个新分支。

1
2
$ git checkout -b develop v0.9
Switched to a new branch 'develop'

唐胡璐 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
分享创造价值,您的支持将鼓励我继续前行!