标签管理

git学习参考
廖雪峰官方网站
git基本操作,一篇文章就够了!

一、标签管理

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。

Git有commit,为什么还要引入tag?

“请把上周一的那个版本打包发布,commit号是6a5819e…”

“一串乱七八糟的数字不好找!”

如果换一个办法:

“请把上周一的那个版本打包发布,版本号是v1.2”

“好的,按照tag v1.2查找commit就行!”

所以,tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。

二、创建标签

1、最新提交的commit上打标签

在Git中打标签非常简单,首先,切换到需要打标签的分支上:

然后,敲命令git tag 就可以打一个新标签:
命令:git tag 标签名

可以用命令git tag查看所有标签:
命令:git tag 标签名

2、在指定的commit上打标签

默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?

方法是找到历史提交的commit id,然后打上就可以了:
查看提交历史:
命令:git log --pretty=oneline --abbrev-commit

比方说要对add merge这次提交打标签,它对应的commit id是f52c633,敲入命令:git tag v0.9 70ccb64
命令 git tag 标签名 要打标签的提交的commit id

3、查看标签信息

注意,标签不是按时间顺序列出,而是按字母排序的。可以用git show 查看标签信息:
命令:git show 标签名

可以看到,v0.9确实打在add merge这次提交上。

4、给指定标签添加说明

1、创建带有说明的标签

还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:
命令:git tag -a 标签名 -m “说明” 标签所在的commit id

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

2、给指定标签添加说明

先删除该标签再创建显得标签并添加新的注释说明

小结

命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;命令git tag可以查看所有标签。

三、操作标签

1、将指定标签推送到远程

如果要推送某个标签到远程,使用命令git push origin 标签名:
命令:git push origin 标签名

2、删除本地标签

如果标签打错了,也可以删除:

本地标删除
命令:git tag -d 要删除的标签名

因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。

3、一次性推送全部尚未推送到远程的本地标签

先创建刚刚删除的v0.9标签

现在 v0.8 已经推送到了远程 v0.9和v0.1还没有推送到远程。

现在一次性推送全部尚未推送到远程的本地标签:
命令:git push origin --tags

3、删除已经推送到远程的标签

查看远程标签,有三个 v0.8 v0.9,v1.0

左边的时间显示的是提交时间而非创建标签的时间

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:以删除标签v0.9为例
先删除本地标签v0.9
然后,从远程删除。删除命令也是push,但是格式如下:
命令:git push origin :refs/tags/标签名

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

远程库确实删除了标签

小结

命令git push origin <tagname>可以推送一个本地标签;命令git push origin --tags可以推送全部未推送过的本地标签;命令git tag -d <tagname>可以删除一个本地标签;命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

Git学习(四)标签管理相关推荐

  1. 【git学习四】git基础之git为项目打标签

    1.背景 今天学习了下如何给项目打标签,为此项目的修改标记版本号,然后可以直接推送版本号到服务器上,方便了很多,而且便于对项目进行管理. 2.打标签 1.查询已有标签,可以使用git tag命令,查询 ...

  2. git学习(四):理解git暂存区(stage)

    与一般的版本管理不同的是,git在提交之前要将更改通过git add 添加到暂存区才能提交(git commit).即使是已经交给了git来管理的文件也是如此.这里继续学习git的暂存区. 通过git ...

  3. git学习——四git版本管理

    一.git版本管理的优势 都说git比svn强大,强大在哪呢? 首先,从部署上说:svn.cvs都是集中式的,一台服务器上部署服务,所有客户端编写的代码都要提交到该服务器上.git是分布式的,所有人都 ...

  4. Git的tag标签管理

    1.列出所有tag git tag 2.打轻量标签 git tag [tag name] 3.附注标签 git tag -a [tag name] -m [message] 例如,打v1.0标签 gi ...

  5. zabbix学习(四)IT_Service管理

    什么是IT Services 服务器或者某项服务.业务的可用率,不懂技术的上级领导会过问最近服务器可用率如何.所有api的状况怎么样?通常一些技术人员会说负载怎么样,哪 些cpu使用率怎么样,硬盘使用 ...

  6. Git学习笔记:标签管理以及GItHub

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  7. Git学习系列(八)标签的管理及配置别名详解

    标签管理 通常咱们发布(release)一个版本时需要打标签,这样可以方便咱们以后要取某个标签版本时,直接把那个相应标本的历史版本取出来即可,它其实是一个版本快照. 标签和分支有点像,都是指向某个co ...

  8. 【学习总结】Git学习-参考廖雪峰老师教程六-分支管理

    学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...

  9. git学习(三)分支管理

    分支管理 git学习参考 廖雪峰官方网站 git基本操作,一篇文章就够了! 一.分支作用 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交 ...

最新文章

  1. 红警1开源放出源码,4K高清重制版登顶Steam畅销榜!网友:青春回来了
  2. hdu 4417 划分树
  3. 能量分析攻击day01
  4. java校验文件格式_Java 判断文件是否为文本格式,并获取文件编码格式,读取内容!...
  5. 【python数据挖掘课程】十六.逻辑回归LogisticRegression分析鸢尾花数据
  6. Android ContentProvider
  7. glup node 内存不够_Redis:内存被我用完了!该怎么办?
  8. echarts自定义图例legend文字和样式
  9. 关于asp.net利用mono部署到Linux上的一些说明
  10. linux 将程序链接到 usr bin,Linux / usr / bin文件在重新启动后消失
  11. python源程序文件的扩展名_python程序文件扩展名知识点详解
  12. oracle配置控制文件快照的位置以及名称为,Oracle 快照控制文件(snapshot control file)...
  13. SpringBoot工作机制
  14. K8s高可用集群部署
  15. 基于布谷鸟灰狼算法、灰狼算法求解复杂地形下三维无人机路径规划问题研究附matlab代码
  16. 脚本c语言编程实例,AVR C语言编程通用脚本.doc
  17. 道客巴巴 文档免积分保存方法
  18. linux bluefish制作网页,Bluefish编辑器
  19. 测试设备对电路故障判断的影响(为什么你的电源纹波那么大?)
  20. 阿语python美多商城-商品-购物车管理之第7.3节展示商品页面简单购物车

热门文章

  1. Histogram Normalization 图像直方图归一化
  2. k8s中hostname, hosts文件, DNS和代理问题, service和pod的访问问题
  3. matlab2c使用c++实现matlab函数系列教程-conj函数
  4. OPNET网络仿真分析-1.6、OPNET软件使用
  5. 【Git基础笔记】常用命令
  6. pandas--带有重复值的轴索引
  7. VScode 同时开多个窗口
  8. Java基础笔记(2) 程序入口 关键字 标识符 常量 变量
  9. 简单地使用jquery的validate
  10. 正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码...