标签管理~创建标签、操作标签(十五)

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照
Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。过程如:标签(tag) → commit

Git有commit,为什么还要引入标签(tag)?                                                                                                                                                  “请把上周一的那个版本打包发布,commit号是6a5819e...”
 “一串乱七八糟的数字不好找!”                                                                                                                                                                      如果换一个办法:                                                                                                                                                                                              “请把上周一的那个版本打包发布,版本号是v1.2”                                                                                                                                        “好的,按照tag v1.2查找commit就行!”                                                                                                                                                        所以,tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。

标签的意思是:
        “我要找commit id是892b892a3f7...的那个版本”
        “一串乱七八糟的数字怎么找?”
        “我要找的commit id是打了tag “v1.1”的那个版本”
        “找到了:git show v1.1”

 标签就是跟某个 commit 版本号 关联起来,便于发布和查找 ;


创建标签

在Git中打标签(tag)非常简单,首先,切换到需要打标签(tag)的分支上(如果说主分支master 需要打标签,就切换到主分支master上),如下:

然后,输入命令 git tag <name> 就可以打一个新标签(tag),如下:

可以用命令 git tag 查看所有标签(tag),如下:

默认标签(tag):是打在最新提交的 commit 上的。有时候,如果忘了打标签(tag), 比如,现在已经是周五了,但应该在周一打的标签(tag)没有打,怎么办?方法:是找到历史提交的 commit id ( 第五篇 git log )版本号,然后打上标签(tag)就可以了,如下:

假如 说要对 add merge 这次提交打标签(tag),它对应的 commit id (版本号) 是 f4047e5,输入命令,如下:

再用命令 git tag 查看标签(tag),如下:

注意,标签(tag)不是按时间顺序列出,而是按字母排序的。可以用 git show <tagname> 查看标签(tag)信息,如下:

可以看到, v0.9 确实打在 add merge 这次提交上。还可创建带有说明的标签(tag),用-a指定标签(tag)名,-m指定说明文字,        以版本号  commit id 为 a0297d1 的  confilect fixed 为例,如下:

用命令  git show <tagname>  可以看到说明文字,如下:

注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签

综上所述: 目前已有3个 commit 打了标签(tag),如下:

分别是:

小结:

  1. 命令 git tag <tagname> 用于新建一个标签,默认为HEAD,也可以指定一个 commit id(版本号) 来设置标签(tag)

  2. 命令 git tag -a <tagname>  -m "文字说明" commit id 表示可以指定标签(tag)信息;

  3.  命令 git tag 可以查看所有标签(tag)

  4.  命令 git show <tagname> 查看标签(tag)信息;


操作标签

如果标签(tag)打错了,也可以删除,如下:

因为创建的标签(tag)都只存储在本地,不会自动推送到远程。所以,打错的标签(tag)可以在本地安全删除。如果要推送某个标签(tag)到远程,使用命令 git push origin <tagname>,如下:

或者,一次性推送全部尚未推送到远程的本地标签(tag),如下:

如果标签(tag)已经推送到远程,要删除远程标签(tag)就麻烦一点,先从本地删除,如下: v0.9举例

然后,从远程删除。删除命令也是push,但是格式如下:(   :refs/tags/<tagname>  )

综上所述:整个删除过程:先从本地删除标签(tag)→然后再从远程删除标签(tag)。   

要看看是否真的从远程库删除了标签(tag),可以登陆GitHub网站查看。

小结:

  1. 命令 git push origin <tagname> 可以推送某一个本地标签(tag)到远程;

  2. 命令 git push origin --tags  可以一次性推送全部未推送过的本地标签(tag)到远程;

  3.  命令 git tag -d <tagname> 可以删除某一个本地标签(tag)

  4.  命令 git push origin :refs/tags/<tagname> 可以删除某一个远程标签(tag)

如果标签(tag)已推送到远程,需要删除远程标签(tag)则执行3,4步骤;


转自:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值