Git学习(四)标签管理
标签管理
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学习(四)标签管理相关推荐
- 【git学习四】git基础之git为项目打标签
1.背景 今天学习了下如何给项目打标签,为此项目的修改标记版本号,然后可以直接推送版本号到服务器上,方便了很多,而且便于对项目进行管理. 2.打标签 1.查询已有标签,可以使用git tag命令,查询 ...
- git学习(四):理解git暂存区(stage)
与一般的版本管理不同的是,git在提交之前要将更改通过git add 添加到暂存区才能提交(git commit).即使是已经交给了git来管理的文件也是如此.这里继续学习git的暂存区. 通过git ...
- git学习——四git版本管理
一.git版本管理的优势 都说git比svn强大,强大在哪呢? 首先,从部署上说:svn.cvs都是集中式的,一台服务器上部署服务,所有客户端编写的代码都要提交到该服务器上.git是分布式的,所有人都 ...
- Git的tag标签管理
1.列出所有tag git tag 2.打轻量标签 git tag [tag name] 3.附注标签 git tag -a [tag name] -m [message] 例如,打v1.0标签 gi ...
- zabbix学习(四)IT_Service管理
什么是IT Services 服务器或者某项服务.业务的可用率,不懂技术的上级领导会过问最近服务器可用率如何.所有api的状况怎么样?通常一些技术人员会说负载怎么样,哪 些cpu使用率怎么样,硬盘使用 ...
- Git学习笔记:标签管理以及GItHub
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
- Git学习系列(八)标签的管理及配置别名详解
标签管理 通常咱们发布(release)一个版本时需要打标签,这样可以方便咱们以后要取某个标签版本时,直接把那个相应标本的历史版本取出来即可,它其实是一个版本快照. 标签和分支有点像,都是指向某个co ...
- 【学习总结】Git学习-参考廖雪峰老师教程六-分支管理
学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...
- git学习(三)分支管理
分支管理 git学习参考 廖雪峰官方网站 git基本操作,一篇文章就够了! 一.分支作用 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交 ...
最新文章
- 红警1开源放出源码,4K高清重制版登顶Steam畅销榜!网友:青春回来了
- hdu 4417 划分树
- 能量分析攻击day01
- java校验文件格式_Java 判断文件是否为文本格式,并获取文件编码格式,读取内容!...
- 【python数据挖掘课程】十六.逻辑回归LogisticRegression分析鸢尾花数据
- Android ContentProvider
- glup node 内存不够_Redis:内存被我用完了!该怎么办?
- echarts自定义图例legend文字和样式
- 关于asp.net利用mono部署到Linux上的一些说明
- linux 将程序链接到 usr bin,Linux / usr / bin文件在重新启动后消失
- python源程序文件的扩展名_python程序文件扩展名知识点详解
- oracle配置控制文件快照的位置以及名称为,Oracle 快照控制文件(snapshot control file)...
- SpringBoot工作机制
- K8s高可用集群部署
- 基于布谷鸟灰狼算法、灰狼算法求解复杂地形下三维无人机路径规划问题研究附matlab代码
- 脚本c语言编程实例,AVR C语言编程通用脚本.doc
- 道客巴巴 文档免积分保存方法
- linux bluefish制作网页,Bluefish编辑器
- 测试设备对电路故障判断的影响(为什么你的电源纹波那么大?)
- 阿语python美多商城-商品-购物车管理之第7.3节展示商品页面简单购物车
热门文章
- Histogram Normalization 图像直方图归一化
- k8s中hostname, hosts文件, DNS和代理问题, service和pod的访问问题
- matlab2c使用c++实现matlab函数系列教程-conj函数
- OPNET网络仿真分析-1.6、OPNET软件使用
- 【Git基础笔记】常用命令
- pandas--带有重复值的轴索引
- VScode 同时开多个窗口
- Java基础笔记(2) 程序入口 关键字 标识符 常量 变量
- 简单地使用jquery的validate
- 正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码...