标签管理~创建标签、操作标签(十五)
发布一个版本时,我们通常先在版本库中打一个标签(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),如下:
分别是:
小结:
命令 git tag <tagname> 用于新建一个标签,默认为HEAD,也可以指定一个 commit id(版本号) 来设置标签(tag);
命令 git tag -a <tagname> -m "文字说明" commit id 表示可以指定标签(tag)信息;
命令 git tag 可以查看所有标签(tag)。
命令 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网站查看。
小结:
命令 git push origin <tagname> 可以推送某一个本地标签(tag)到远程;
命令 git push origin --tags 可以一次性推送全部未推送过的本地标签(tag)到远程;
命令 git tag -d <tagname> 可以删除某一个本地标签(tag);
命令 git push origin :refs/tags/<tagname> 可以删除某一个远程标签(tag);
如果标签(tag)已推送到远程,需要删除远程标签(tag)则执行3,4步骤;
转自:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
标签管理~创建标签、操作标签(十五)相关推荐
- 【Git】Git 标签使用 ( 创建并查询标签 | 推送单个标签到远程仓库 | 推送所有标签到远程仓库 | 删除远程仓库的标签 )
文章目录 一.创建并查询标签 二.推送单个标签到远程仓库 三.推送所有标签到远程仓库 四.删除远程仓库的标签 一.创建并查询标签 执行 git log --pretty=oneline --abbre ...
- 大IPD之——学习华为战略人力资源管理:从职能管理到业务伙伴(十五)
在经济高速发展的今天,任何一家企业,想要增强实力.扩大发展,内部的管理绝对不能混乱.就像气球,吹气越快爆炸的几率就越高,企业不能只寻求快速发展而忽视管理.华为创立30多年以来发展迅速,其中也遇到了各种 ...
- Git基础之(二十)——标签管理——创建标签
在Git中打标签非常简单,首先,切换到需要打标签的分支上: $ git branch * devmaster$ git checkout masterSwitched to branch 'maste ...
- Git学习笔记:标签管理以及GItHub
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
- Git学习(四)标签管理
标签管理 git学习参考 廖雪峰官方网站 git基本操作,一篇文章就够了! 一.标签管理 发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候 ...
- 【六】Tag标签管理
标签管理 创建标签 操作标签 发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来. ...
- DOM操作标签与jQuery框架
今日内容概要 1 > DOM操作标签 1.1 > 动态创建一个a 标签 1.2 > 默认与自定义属性 1.3 > getAttribute和removAttribute 方法 ...
- 数据应用场景之标签管理体系
一.标签简介 标签概念 标签,最初用来对实物进行分类和标记,例如标明物品的品名.重量.体积.用途等简要信息.后来逐渐流行到数据行业,用来标记数据,对数据快速分类获取和分析. 标签特点 精确描述定位和搜 ...
- 从零开始前端学习[50]:js操作标签属性,读写属性标签
js操作标签属性 标签属性 js下操作标签属性 提示: 博主:章飞_906285288 博客地址:http://blog.csdn.net/qq_29924041 前端的一些标签属性 标签属性:通俗的 ...
最新文章
- 【百度地图API】如何制作多途经点的线路导航——驾车篇
- 日记20190415
- 《模式识别与机器学习》学习笔记:2.2 多项变量
- 腾讯大数据星火计划--Angel技术沙龙 对外报名正式启动!
- 职场人必备的几个PPT进阶小技巧
- docker 安装入门
- 读《系统虚拟化-原理与实现》-第二章
- 经典回溯之火柴拼正方形
- Material Design之AppBarLayout总结
- Linux系统编程27:进程间通信之管道的基本概念和匿名管道与命名管道及管道特性
- Android笔记 Android艺术探索笔记 Pacel VS Serialize Demo
- Header First设计模式学习笔记——单例模式
- JPA JAVA代码生成器(entity ,controller ,service ,repository)
- 基于51单片机及ADC0808的数字电压表数码管汇编语言proteus仿真程序设计
- 博科300 java配置,博科300 光纤交换机如何设置为SSH登录?
- 计算机分屏功能吗,电脑分屏显示
- 01背包问题解法及优化
- 肌酸报告:17个肌酸使用常见问题解答
- Rider 全局搜索搜索不到内容
- 数论基础题(1) 费马引理+卡特兰数+Lucas定理+同余方程+扩欧