2016-10-13 Git 基础(六) - 打标签

像其他版本控制系统(VCS)一样,Git 可以给历史中的某一个提交打上标签,以示重要。 比较有代表性的是人们会使用这个功能来标记发布结点

情形一: 列出标签

命令:

  • git tag 列出tag
  • git tag -l "v0.0.*" 搜索v0.0系列的tag
➜  git_test git:(master) git tag -a v0.1.0 -m "测试标签"
➜  git_test git:(master) git tag
v0.0.1-rc0
v0.1.0
➜  git_test git:(master) git tag -l "v0.0.*"
v0.0.1-rc0

情形二: 创建标签

Git 使用两种主要类型的标签:轻量标签(lightweight)与附注标签(annotated)。

一个轻量标签很像一个不会改变的分支 - 它只是一个特定提交的引用。

然而,附注标签是存储在 Git 数据库中的一个完整对象。 它们是可以被校验的;其中包含打标签者的名字、电子邮件地址、日期时间;还有一个标签信息;并且可以使用 GNU Privacy Guard (GPG)签名与验证。 通常建议创建附注标签,这样你可以拥有以上所有信息;但是如果你只是想用一个临时的标签,或者因为某些原因不想要保存那些信息,轻量标签也是可用的。

创建附注标签

➜  git_test git:(master) git tag -a v0.1.1 -m "测试标签"
➜  git_test git:(master) git tag
v0.0.1-rc0
v0.1.0
v0.1.1

查看标签信息与对应的提交信息

➜  git_test git:(master) git show v0.1.1
tag v0.1.1
Tagger: augustine <cto@5dcto.com>
Date:   Thu Oct 13 16:19:09 2016 +0800

测试标签

commit b6199c8df83ccb70a940d90c9621bcc43d025f1e
Author: augustine <cto@5dcto.com>
Date:   Wed Oct 12 14:59:30 2016 +0800

    test

diff --git a/2 b/2
index e69de29..14be0d4 100644
--- a/2
+++ b/2

创建轻量标签

➜  git_test git:(master) git tag v1.0.1
➜  git_test git:(master) git tag
v0.0.1-rc0
v0.1.0
v0.1.1
v1.0.1

查看轻量标签

commit b6199c8df83ccb70a940d90c9621bcc43d025f1e
Author: augustine <cto@5dcto.com>
Date:   Wed Oct 12 14:59:30 2016 +0800

    test

diff --git a/2 b/2
index e69de29..14be0d4 100644
--- a/2
+++ b/2

情形三: 后期打标签

可以对过去的提交打标签。

➜  git_test git:(master) git log --pretty=oneline
b6199c8df83ccb70a940d90c9621bcc43d025f1e test
7dc31d13d7d48a7e1cd93f31668bd50beb679889 测试 ament
e87932d0c46461dcf77fd75feef2a3c7b28e4fe4 renamed
10ff61af1a6aea266a423222decc0dfc4be67ad8 rename
d446522b785cc96b6161b91f35f0362eaffde7d4 rename
782be0944b2e3b086fc13604dfece14b7512773f test
4021312cdb038da674f6a85a5a3b358f012209dc save last commit

➜  git_test git:(master) git tag -a v0.0.1-rc00 e87932d0c46461dcf77fd75feef2a3c7b28e4fe4
  1 测试补打标签
  2 # Write a message for tag:
  3 #   v0.0.1-rc00
  4 # Lines starting with '#' will be ignored.
➜  git_test git:(master) git tag
v0.0.1-rc0
v0.0.1-rc00
v0.1.0
v0.1.1
v1.0.1

情形四: 共享标签

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

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

➜  git_test git:(master) git push origin v0.0.1-rc0
Username for 'https://github.com': xuguotao1984@163.com
Password for 'https://xuguotao1984@163.com@github.com':
Counting objects: 1, done.
Writing objects: 100% (1/1), 158 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To https://github.com/xuguotao/git_test.git
 * [new tag]         v0.0.1-rc0 -> v0.0.1-rc0
 
➜  git_test git:(master) git push --tag
Username for 'https://github.com': xuguotao1984@163.com
Password for 'https://xuguotao1984@163.com@github.com':
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 375 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), done.
To https://github.com/xuguotao/git_test.git
 * [new tag]         v0.0.1-rc00 -> v0.0.1-rc00
 * [new tag]         v0.1.0 -> v0.1.0
 * [new tag]         v0.1.1 -> v0.1.1
 * [new tag]         v1.0.1 -> v1.0.1

情形五: 检出标签

在 Git 中你并不能真的检出一个标签,因为它们并不能像分支一样来回移动。 如果你想要工作目录与仓库中特定的标签版本完全一样,可以使用 git checkout -b [branchname] [tagname] 在特定的标签上创建一个新分支

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

推荐阅读更多精彩内容

  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,676评论 1 17
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,649评论 4 54
  • 关于对孩子数感的培养仔细想想也已经进行了有大半个年头了。一直以来关于孩子的点滴成长我对孩子的记录也总是隔三差...
    numump阅读 173评论 0 1
  • 极力推荐大家去看一看,虽然我没有大家说的那样,看完就非常想找一个女朋友,我觉得这部电影很走心,所有的细节处理的非常...
    啦啦啦啦啦128阅读 416评论 0 1
  • 主题:201610城东共同体新教师 地点城东七(3) 时间1028 引课看国旗找位置 为什么国旗能找位置 国界线 ...
    一方一净土阅读 296评论 0 0