Git学习笔记(六)-标签管理

news2024/9/26 3:25:56

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

一、创建标签

(1)命令 git tag v1.0(标签名)

打一个新标签,在目前最新的版本上。

$ git tag v1.0

(2)命令 git tag

查看所有标签

$ git tag
v1.0

(3)命令 git tag commit_id

如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,可以使用找到需要打标签的commit_id,然后打标签。

abafad6 (HEAD -> master, tag: v1.0, origin/master) merged bug fix 101
91a4683 fix bug 101
f4961d3 merge with no-ff
0e13ee2 add merge
47e9b49 conflict fixed
6f306dd &simple
cd8fa2d AND simple
ea4444f branch text
53e89d7 remove test.txt
ed0dc67 add test.txt
e87225d git tracks changes 1
fe8a3cb git tracks changes
52edc0e understand how stage works
9178f48 append GPL
84cca88 add distributed
bdcbe49 wrote a readme file

比如要给add merge打标签,其对应的commit_id 是0e13ee2,则打标签的命令如下:

git tag v0.9 0e13ee2

查看标签历史,git tag可以看见

$ git tag
v0.9
v1.0

(4)命令git show <tagname>

查看历史标签信息

li**@LAPTOP-MU**9V MI** ~/learngit (master)
$ git show v0.9
commit 0e13ee214fda9079dc00873b13594e822de43b7f (tag: v0.9)
Author: Li** <8507**5@qq.com>
Date:   Wed Mar 8 16:28:27 2023 +0800

    add merge

diff --git a/readme.txt b/readme.txt
index 241c79a..5b67ce1 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,3 +1,4 @@
+Edit on dev branch.
 Git is a distributed version control system.
 Git is free software distributed under the GPL.
 Git has a mutable index called stage.

(5)命令git tag -a <tagname> -m " " <commit_id>

创建带有说明的标签,用-a指定标签名,-m指定说明文字。

$ git tag -a v0.1 -m "version 0.1 released" 9178f48

查看标签记录

$ git show v0.1
tag v0.1
Tagger: Li** <8507**5@qq.com>
Date:   Thu Mar 9 15:58:06 2023 +0800

version 0.1 released

commit 9178f48947263ebeb3535bb46ae14f570b3849f2 (tag: v0.1)
Author: Li** <8507**5@qq.com>
Date:   Sat Mar 4 17:10:37 2023 +0800

    append GPL

diff --git a/readme.txt b/readme.txt
index 013b5bc..99e0e11 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
 Git is a distributed version control system.
-Git is free software.
\ No newline at end of file
+Git is free software distributed under the GPL.
\ No newline at end of file

创建标签总结:

命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

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

二、操作标签

(1)命令git tag -d <tagname>

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

$ git tag -d v0.1
Deleted tag 'v0.1' (was d0c1eb0)

(2)命令git push origin <tagname>

推送某个标签到远程。

$ git push origin v1.0
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:lily-wang0524/learngit.git
 * [new tag]         v1.0 -> v1.0

(3)命令git push origin --tags

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

$ git push origin --tags
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:lily-wang0524/learngit.git
 * [new tag]         v0.9 -> v0.9

(4)删除远程标签git push origin :refs/tags/<tagname>

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除,然后,从远程删除。

1)删除本地标签

$ git tag -d v0.9  #删除本地标签
Deleted tag 'v0.9' (was 0e13ee2)

2)删除远程标签

$ git push origin :refs/tags/v0.9  #删除远程标签v0.9
To github.com:li**-wa***/learngit.git
 - [deleted]         v0.9

看看是否真的从远程库删除了标签,可以登陆GitHub查看。可以看见v0.9已经被删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/399615.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

销售使用CRM系统集成Excel的五个技巧

销售过程中有很多情况会降低团队的效率。通过正确的实施CRM客户管理系统&#xff0c;可以帮助您的企业自动执行手动任务、减少错误并专注于完成交易。这里有5个技巧&#xff0c;可以帮助您的销售人员通过CRM集成Excel为销售流程赋能并提高他们的整体效率。 技巧1&#xff1a;将…

Python每日一练(20230309)

目录 1. 删除有序数组中的重复项 ★ 2. 二叉树的最小深度 ★★ 3. 只出现一次的数字 II ★★ &#x1f31f; 每日一练刷题专栏 C/C 每日一练 ​专栏 Python 每日一练 专栏 1. 删除有序数组中的重复项 给你一个有序数组 nums &#xff0c;请你原地删除重复出现的元素…

Xuetr杀毒工具使用实验(28)

实验目的 &#xff08;1&#xff09;学习Xuetr的基本功能&#xff1b; &#xff08;2&#xff09;掌握Xuetr的基本使用方法。预备知识 windows操作系统的基本知识如&#xff1a;进程、网络、服务和文件等的了解。 XueTr是近年推出的一款广受好评的ARK工具。ARK工具全称为Anti R…

Ubuntu20.04中Docker安装与配置

一、安装 1、卸载可能存在的旧版本 sudo apt-get remove docker docker-engine docker-ce docker.io2、更新apt包索引 sudo apt-get update显示“正在读取软件包列表… 完成” 3、安装以下包以使apt可以通过HTTPS使用存储库(repository) sudo apt-get install -y apt-tran…

java多线程(二三)并发编程:Callable、Future和FutureTask

一、Callable 与 Runnable 先说一下java.lang.Runnable吧&#xff0c;它是一个接口&#xff0c;在它里面只声明了一个run()方法&#xff1a; public interface Runnable {public abstract void run(); }由于run()方法返回值为void类型&#xff0c;所以在执行完任务之后无法返…

关于React Hook(18)

useState&#xff08;&#xff09;&#xff1a;&#x1f449;详情 &#xff08;必须“有条件地调用”&#xff1b;注意避免冗余状态的产生&#xff09; 关于useState的两种使用方式的区别&#xff1a;&#x1f449;详情 关于batch机制&#xff1a;有条件地调用一些状态的set方…

L3-021 神坛

在古老的迈瑞城&#xff0c;巍然屹立着 n 块神石。长老们商议&#xff0c;选取 3 块神石围成一个神坛。因为神坛的能量强度与它的面积成反比&#xff0c;因此神坛的面积越小越好。特殊地&#xff0c;如果有两块神石坐标相同&#xff0c;或者三块神石共线&#xff0c;神坛的面积…

STM32F103R8T6 SPWM实现正弦波输出

前言 PWM合成正弦波&#xff0c;原理什么的不详细说了&#xff0c;概括一下就是 PWM有效面积的积分 正弦波的有效面积。PWM的频率越快&#xff0c;细分的越多&#xff0c;锯齿也就越不明显。 做法是&#xff1a;首先利用正弦波取点软件&#xff0c;取点1000个&#xff0c;生…

计算机网络:OSPF协议和链路状态算法

OSPF协议 开放最短路经优先OSPF协议是基于最短路径算法SPF,其主要特征就是使用分布式的链路状态协议OSPF协议的特点&#xff1a; 1.使用泛洪法向自治系统中的所有路由器发送信息&#xff0c;即路由器通过输出端口向所有相邻的路由器发送信息&#xff0c;而每一个相邻的路由器又…

阶段二12_面向对象高级_继承3

知识点内容&#xff1a; 抽象类 模板设计模式 final关键字 一.抽象类 (1)抽象类概述 抽象方法&#xff1a;将共性的行为&#xff08;方法&#xff09;抽取到父类之后&#xff0c;发现该方法的实现逻辑 无法在父类中给出具体明确&#xff0c;该方法就可以定义为抽象方法。 抽…

ASP.NET CORE API 使用Orleans

快速使用Monimal API 快速集成Orleans 微软官网地址如下&#xff1a;https://learn.microsoft.com/zh-cn/dotnet/orleans/quickstarts/build-your-first-orleans-app?sourcerecommendations&tabsvisual-studio当然它的存储grain存储采用的是内存级别存储&#xff0c;我缓存…

JVM调优面试题——参数命令专题

文章目录1、JVM参数有哪些&#xff1f;1.1、 标准参数1.2、-X参数1.3、 -XX参数1.4、 其他参数1.5、 查看参数1.6、 设置参数的常见方式1.7、 常用参数含义2、JVM常用命令有哪些&#xff1f;2.1、jps2.2、jinfo2.3、jstat2.4、jstack2.5、jmap3、你会估算GC频率吗?4、 内存溢出…

【unity3D】创建TextMeshPro(TMP)中文字体(解决输入中文乱码问题)

&#x1f497; 未来的游戏开发程序媛&#xff0c;现在的努力学习菜鸡 &#x1f4a6;本专栏是我关于游戏开发的学习笔记 &#x1f236;本篇是unity的TMP中文输入显示乱码的解决方式 创建 TextMeshPro 中文字体遇到的问题描述解决方式Font Asset Creator 面板扩展中文字体文本遇到…

深度学习零基础学习之路——第五章 个人数据集的制作

Python深度学习入门 第一章 Python深度学习入门之环境软件配置 第二章 Python深度学习入门之数据处理Dataset的使用 第三章 数据可视化TensorBoard和TochVision的使用 第四章 UNet-Family中Unet、Unet和Unet3的简介 第五章 个人数据集的制作 深度学习数据集的制作Python深度学…

MySQL 行锁

行锁 : 对表中行记录的锁 MySQL 的行锁 : 由各个引擎自己实现MyISAM 不支持行锁InnoDB 支持行锁 两阶段锁协议 : 行锁是在需要时才加上&#xff0c;要等到事务结束才释放 例子 : id 是表 t 的主键的 B 的 update 会阻塞&#xff0c;直到 A 执行 commit 后&#xff0c;B 才能…

Spring Cloud/Spring Cloud Alibaba核心知识总结

Spring Cloud核心知识总结 springCloud是一个服务治理平台&#xff0c;若干个框架的集合&#xff0c;提供了全套的分布式系统的解决方案。包含&#xff1a;服务注册与发现、配置中心、服务网关、智能路由、负载均衡、断路器、监控跟踪、分布式消息、分布式事务等等。 SpringC…

Python机器学习库scikit-learn在Anaconda中的配置

本文介绍在Anaconda环境中&#xff0c;安装Python语言scikit-learn模块的方法。 scikit-learn库&#xff08;简称sklearn&#xff09;是一个基于Python语言的机器学习库&#xff0c;提供了各种机器学习算法和相关工具&#xff0c;包括分类、回归、聚类、降维、模型选择和预处理…

TiDB Server

文章目录TiDB Server架构TiDB Server作用TiDB Server的进程SQL语句的解析和编译SQL读写相关模块在线DDL相关模块GC机制与相关模块TiDB Server的缓存热点小表缓存TiDB Server架构 Protocol Layer、Parse、Compile负责sql语句的解析编译和优化&#xff0c;然后生成sql语句执行计划…

易优cms attribute 栏目属性列表

attribute 栏目属性列表 attribute 栏目属性列表 [基础用法] 标签&#xff1a;attribute 描述&#xff1a;获取栏目的属性列表&#xff0c;或者单独获取某个属性值。 用法&#xff1a; {eyou:attribute typeauto} {$attr.name}&#xff1a;{$attr.value} {/eyou:attri…

iperf3主页官方信息

​ iPerf 是一款支持TCP,UDP和SCTP的高速协议测试工具 网络极限性能测试网络中立性检测 主页 下载iPerf安装包 公共的iPerf3服务器 iPerf用户手册 iPerf论坛—法语 联系我们 iPerf / iPerf3简介 iPerf3是一款用于对IP网络的最大带宽进行主动测试的工具。提供对和时间&…