Git中tag标签的使用教程
作者:農碼一生 发布时间:2022-06-26 08:15:00
标签:Git,tag,标签,使用,教程
一、tag简介
tag是git版本库的一个标记,指向某个commit的指针。
tag主要用于发布版本的管理,一个版本发布之后,我们可以为git打上 v.1.0.1 ,v.1.0.2 …这样的标签。
tag感觉跟branch有点相似,但是本质上和分工上是不同:
tag对应某次commit,是一个点,是不可移动的。
branch 对应一系列commit,是很多点连成的一根线,有一个HEAD 指针,是可以依靠 HEAD 指针移动的。
所以,两者的区别决定了使用方式,改动代码用 branch ,不改动只查看用 tag。
tag 和 branch 的相互配合使用,有时候起到非常方便的效果,例如:已经发布了 v1.0 v2.0 v3.0 三个版本,这个时候,我突然想不改现有代码的前提下,在 v2.0 的基础上加个新功能,作为 v4.0 发布。就可以检出 v2.0 的代码作为一个 branch ,然后作为开发分支。
二、tag使用命令
1、列出所有tag
git tag //默认显示
git tag -l
git tag -n //查看所有tag和说明
git tag -l v1.* //查看匹配到的tag
git ls-remote --tags origin //查看远程所有tag
2、查看tag信息
git show v1.0.1 //查看v1.0.1的内容
3、创建tag
git tag v2.0
git push origin //远程tag的创建
4、创建带注释tag
git tag -a v2.1 -m '第二版本' ////-m 后跟的是注释信息, 当使用git show v2.1的时候, 会显示这个注释信息
git push origin //远程tag的创建
5、推送tag
git push origin [tagname] //推送到远程仓库
git push origin --tags //推送所有tag到远程仓库
6、特定commit_id创建tag
git log --pretty=oneline //查看当前分支的提交历史 里面包含 commit_id
git tag -a
7、删除tag
git tag -d //方式一
git tag -d [tagname] //方式二
git push origin :refs/tags/v1.0.2 //方式一:远程tag的删除
git push origin --delete <tagname> //方式二:远程tag的删除
8、检出tag
git checkout -b
//因为 tag 本身指向的就是一个 commit,所以和根据commit id 检出分支是一个道理。
//但是需要特别说明的是,如果我们想要修改 tag检出代码分支,那么虽然分支中的代码改变了,但是 tag标记的 commit还是同一个,标记的代码是不会变的,这个要格外的注意
git checkout -b branch_name tag_name //新建分支检出
//注意不要在检出标签后做修改和提交,会出现不必要的麻烦。正确的做法应该是创建一个新的分支,在新的分支上做修改和提交。
9、切换tag
git checkout [tagname] //切换到指定tag
10、为之前提交的添加tag
git log --pretty=oneline --abbrev-commit //第一步:找到提记录
git tag -a v3.1 [指定标签名] [commitID] //第二步:为记录创建tag
//git tag -a "v1.0.2" 9fbc3d0
11、重命名tag
//1.强制替换,再删除原有
git tag -f <new-tag> <old-tag>
git tag -d <old-tag>
//2.删除原有tag,重新添加
git tag -d <old-tag>
git tag -a <new-tag> -m"information"
来源:https://www.cnblogs.com/wml-it/p/15588730.html


猜你喜欢
- 目录前言什么是socket?如何在 Python 中创建 socket 对象?Python 的套接字库中有多少种可用的套接字方法?服务器套接
- <script language="vbscript" runat="s
- 一、背景最近在和系统模块做数据联调,其中有一个需求是将两个角色下的相关数据对比后将最新的数据返回出去,于是就想到了去重,再次做一个总结。二、
- 前言Go大概2009年面世以来,已经8年了,也算是8年抗战。在这8年中,已经有很多公司开始使用Go语言开发自己的服务,甚至完全转向Go开发,
- 相信大家在微信上一定被上面的这段话刷过屏,群发消息应该算是微信上流传最广的找到删除好友的方法了。但群发消息不仅仅会把通讯录里面所有的好友骚扰
- 本文实例讲述了Python3对称加密算法AES、DES3。分享给大家供大家参考,具体如下:python3.6此库安装方式,需要pip3 in
- 内容摘要:统计在线人数的方法很多,可以使用Application来统计在线人数,也可以使用IP来统计在线人数。各有优点。本文介绍了通过判断S
- 一、使用 PyCharm 软件安装 pandas 包1、打开 PyCharm2、点击右上角 “Files” →“Settings...”3、
- 连接配置方式如图:有时候Navicat并没有初始化安装sqlncli, 所以连接的时候会报 没有默认驱动,如图:解决方法:在navicat目
- 1.需要导的包import pymysql2.# mysql连接信息(字典形式)db_config ={ 'host': &
- 0.触发器的基本概念触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据
- 本文实例为大家分享了Bootstrap进度条的具体实现代码,供大家参考,具体内容如下<!doctype html><htm
- 前言pymssql模块是用于sql server数据库(一种数据库通用接口标准)的连接。另外pyodbc不仅限于SQL server,还包括
- 在安装pip前,请确认win系统中已经安装好了python,和easy_install工具,如果系统安装成功,easy_install在目录
- Python 提供了很多内置的工具函数(Built-in Functions),在最新的 Python 3 官方文档中,它列出了 69 个。
- 0. 前言这几天在写软件工程课设,题目是:设计一款疫苗管理系统,于是用PyQT5写GUI,MySQL做数据库写了一个demo出来。做完之后,
- 获取一个类的所有子类def itersubclasses(cls, _seen=None): "
- 今天为大家分享一下我自己制作的浏览器滚动条,我们知道用css来自定义滚动条也是挺好的方式,css虽然能够改变chrome浏览器的滚动条样式可
- asp如何实现当前月份距离以前某个时间的月份数 如今天是2011年1月份,我想知道离2010年3月,计算这中间一共是几个月 最佳答案 <
- 本文实例讲述了PHP实现将科学计数法转换为原始数字字符串的方法,分享给大家供大家参考。具体实现代码如下:function NumToStr(