tag 命令

对某一时间点上的版本进行打标签,比如在发布某个版本的时候。

注意:

  1. 本地标签与远程标签是相互独立的

  2. 本地有的标签,远程仓库可以没有。远程仓库中有的标签,本地也可以没有。两者相互不影响。而且,在正常 push 与 pull 时,标签不会被提交或拉取。

  3. 不显式将标签提交到远程仓库,本地的标签就不会出现在远程仓库中。同样,不显式的删除远程仓库中的标签,即使本地已经没有了指定的标签,远程仓库中还会存在。

命令

主要涉及的操作有:增,删,查,推送到远程仓库,删除远程仓库中的标签,从远程仓库拉取。

标签 含义
git tag <tagname> 创建指定名字的标签
git tag <tagname> <checksum> 在指定的提交处创建一个标签
git tag -a <tagname> -m <msg> 创建指定名字的带信息的标签
git tag -a <tagname> <checksum> -m <msg> 创建指定名字的带信息的标签
git tag --delete <tagname> 删除本地指定的标签
git tag 列出所有标签
git show tag <name> 查看指定标签的详细信息
git push <仓库别名> <tagname> 将指定的标签提交到远程仓库中
git push <仓库别名> --tags 将本地所有标签提交到远程仓库中
git push <仓库别名> --delete tag <tagname> 删除远程库中指定的标签
git fetch <仓库别名> tag <tagname> 拉取远程库中指定的标签

所有跟远程仓库相关的,都需要指定仓库别名。

删除远程仓库中的标签时,需要关键字 tag 。如果直接写成 git push <别名> --delete <name> 指的是删除远程仓库中的分支。

通过 fetch 获取远程标签时,也需要使用 tag 关键字。不使用 tag 关键字时,表示 fetch 远程的分支。


创建

简单标签

可以通过 git tag <name> 创建一个标签

带附注(annotated)的标签

git tag -a <name> -m <msg>。其中 msg 是对该标签的说明。

$ git tag -a tagName -m "msg"

一个简单标签很像一个不会改变的分支,它只是一个指向特定提交对象的指针。然而,附注标签是存储在 Git 数据库中的一个完整对象,其中包含打标签者的名字、电子邮件地址、日期时间;还有一个标签信息;并且可以使用 GNU Privacy Guard (GPG)签名与验证。

后补标签

在某些时候可能需要对原来某次提交打标签,可以使用 git tag <name> <checksum> 对某次提交进行后补标签。如下:

  1. 首先能过 git log 查看想要打标签的校验和:

    $ git log --pretty=oneline
    ff9fcc37b359373f10d4d12fdc32d3e1994d8e05 Update a.txt
    45adb4b64a43fccb10672199997f36d2c1f4caa6 Create test.html
    ec9d334dd611e6d058a91d70110afa73ec092a47 Update a.txt
    02cba518a42c11e0bc90ed21c9ebe72a8d5252d0 remove
    06254ef89d49a33669c48849961b50044ac551c4 rm
    c2139ae9909fcf0fc01dcaa2d9defee3cfac84da Create test
    
  2. 通过 git tag 增补标签:

    $ git tag -a v0.2 c2139ae9909fcf0fc01dcaa2d9defee3cfac84da
    
    • 也可以通过 git tag -a <name> <checksum> -m <msg> 增补一个带文字说明的标签。如上面的示例,它会启动文本编辑器,让输入本次标签的文字说明。

查看

显示标签详细信息

通过 git show <name> 显示指定标签的详细信息

$ git show tagName
tag tagName
Date:   Fri Sep 8 17:09:22 2017 +0800

msg

这里并不是类似于 remote 命令时使用 git remote show 格式,而是使用 git show ,因为 git tag show 会创建一个名为 show 的标签

列出已有的标签

  1. 通过 git tag 列出所有的标签

  2. 通过 -l 列出符合模式的所有标签。如:

    git tag -l "*.1.*"
    v2.1.1
    v2.1.1.2
    v2.1.2
    

    其中 *.1.* 就是指定的标签模式。

  3. 所有的 tag 按字母顺序排列显示,而不是按时间顺序。


提交

默认情况下,git push 并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。其命令格式如同推送分支,运行 git push <别名> <name>

  1. 可以使用 git push <别名> --tags 将本地所有的新建标签都 push 到远程仓库中。

删除

本地删除

使用git tag --delete <name> 删除指定的 tag。

可以将 --delete 换成 -d。git 中,-- 后跟的是单词全称,- 后跟的是单词简写,但两者用途完全一样。

$ git tag
t1
t2
$ git tag -d t1
Deleted tag 't1' (was 884d05c)
$ git tag
t2
$ git tag --delete t2
Deleted tag 't2' (was 504b7e0)
$ git tag
$ 

最后使用 git tag 时,本地已经没有标签了。

远程删除

使用 git push <别名> --delete tag <name> 删除指定仓库的指定标签。

  1. 删除远程仓库中指定的标签后,本地的标签可以一直存在。

  2. 同样,--delete 也可以换成 -d 。

  3. 远程删除后,本地的标签还存在,可以通过 git tag -d 删除本地标签。


拉取远程标签

使用 git fetch <别名> tag <name> 获取本地不存在,而远程存在的标签。

如:

ZBMAC-C02VP4ZUH:demo xx$ git tag
ZBMAC-C02VP4ZUH:demo xx$ git fetch origin tag test
From https://github.com/xx/gitdemo
 * [new tag]         test       -> test
ZBMAC-C02VP4ZUH:demo xx$ git tag
test

第二个命令拉取远程的 test 标签,然后本地才有 test 标签存在。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342

推荐阅读更多精彩内容

  • 本片内容转自CSDN http://blog.csdn.net/ithomer/article/details/7...
    五娃儿阅读 4,911评论 2 88
  • Add & Commit git init 初始化一个 Git 仓库(repository),即把当前所在目录变成...
    冬絮阅读 4,773评论 0 8
  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,672评论 1 17
  • 2017-6-27 王老七 王老七的美好生活 相信大家对于动不动就背一书包蹲马路边上要钱的“求4元坐车”少年并...
    普通人老七阅读 261评论 0 0
  • 水平线标签<hr/> 属于自闭合标签。 简书上可以直接显示,如下: 上面这一条就是水平线了。 这里说一下什么是自闭...
    进击的小明阅读 257评论 0 0