Git 与标签管理
在 Git 中,标签 tag 是指向某个 commit 的指针(所以创建和删除都很快)。Git 有 commit id 了,为什么还要有 tag?commit id 是一串无规律的数字,不好记;而 tag 是我们自定义的,例如我们可以命名为 v1.2
所以 tag 就是一个让人容易记住的有意义的名字,它跟某个 commit 绑在一起。
创建标签
在 Git 中创建标签非常简单,首先切换到要打标签的分支上:
$ git checkout master
然后,敲命令 git tag <name> 就可以打一个新标签:
$ git tag v1.0
默认标签是打在最新提交的 commit 上的。如果想要打在某个 commit id 上,指定 commit id 即可:
$ git tag v0.9 1794212
可以用命令 git tag 查看所有标签:
$ git tag
v0.9
v1.0
注意,标签不是按时间顺序列出,而是按字母排序的。可以用 git show <tagname> 查看标签信息:
$ git show v0.9
commit 17942124f48557a93541974769ba1187321b8133 (tag: v0.9, bug)
Author: peterjxl <peterjxl@qq.com>
Date: Sat Jan 14 20:06:01 2023 +0800fix bugdiff --git a/3-branch/branch.txt b/3-branch/branch.txt
index b7edfda..42c8f36 100644
--- a/3-branch/branch.txt
+++ b/3-branch/branch.txt
@@ -1,3 +1,3 @@Creating a new branch is quick and simpletest no fast forward
-test
+test cherry-pick
还可以创建带有说明的标签,用 -a 指定标签名,-m 指定说明文字:
$ git tag -a v0.1 -m "version 0.1 released" 1094adb
再次用 git show <tagname>,可以看到说明文字:
$ git show v0.1
tag v0.1
Tagger: peterjxl <peterjxl@qq.com>
Date: Sat Jan 14 20:50:31 2023 +0800version 0.1 releasedcommit abf2051bd989d0b129066bff3700a019665469ce (tag: v0.1)
Author: peterjxl <peterjxl@qq.com>
Date: Wed Jan 11 22:50:39 2023 +0800add diff and patch hello.txtdiff --git a/1-diffAndPath/hello.txt b/1-diffAndPath/hello.txt
new file mode 100644
index 0000000..9bef518
--- /dev/null
+++ b/1-diffAndPath/hello.txt
@@ -0,0 +1,2 @@
+This is hello file
+Welcome to diff
之前说的第一种是轻量标签(lightweight),第二种带说明的就是附注标签(annotated)。
轻量标签很像一个不会改变的分支——它只是某个特定提交的引用。
而附注标签是存储在 Git 数据库中的一个完整对象, 它们是可以被校验的,其中包含打标签者的名字、电子邮件地址、日期时间, 此外还有一个标签信息,并且可以使用 GNU Privacy Guard (GPG)签名并验证。 通常会建议创建附注标签,这样你可以拥有以上所有信息。但是如果你只是想用一个临时的标签, 或者因为某些原因不想要保存这些信息,那么也可以用轻量标签。
标签总是和某个 commit 挂钩。如果这个 commit 既出现在 master 分支,又出现在 dev 分支,那么在这两个分支上都可以看到这个标签。
删除标签
如果标签打错了,也可以删除:
$ git tag -d v0.1
Deleted tag 'v0.1' (was 361b94d)
因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。
推送标签
如果要推送某个标签到远程,使用命令 git push origin <tagname>:
$ git push gitee v1.0
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To gitee.com:peterjxl/LearnGit.git* [new tag] v1.0 -> v1.0
或者,一次性推送全部尚未推送到远程的本地标签:
$ git push gitee --tags
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To gitee.com:peterjxl/LearnGit.git* [new tag] v0.9 -> v0.9
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
$ git tag -d v0.9
然后,从远程删除。删除命令也是 push,但是格式如下:
$ git push origin :refs/tags/v0.9
第二种更直观的删除远程标签的方式是:
$ git push origin --delete <tagname>
要看看是否真的从远程库删除了标签,可以登录远程仓库查看。
查找标签
你也可以按照特定的模式查找标签。 例如,Git 自身的源代码仓库包含标签的数量超过 500 个。 如果只对 1.8.5 系列感兴趣,可以运行:
$ git tag -l "v1.8.5*"
v1.8.5
v1.8.5-rc0
v1.8.5-rc1
v1.8.5-rc2
v1.8.5-rc3
v1.8.5.1
v1.8.5.2
v1.8.5.3
v1.8.5.4
v1.8.5.5
小结
常用的 git tag 命令如下:
- git tag tagName 创建标签
- git tag 创建标签
- 命令
git push origin <tagname>可以推送一个本地标签; - 命令
git push origin --tags可以推送全部未推送过的本地标签; - 命令
git tag -d <tagname>可以删除一个本地标签; - 命令
git push origin :refs/tags/<tagname>可以删除一个远程标签。
相关文章:
Git 与标签管理
在 Git 中,标签 tag 是指向某个 commit 的指针(所以创建和删除都很快)。Git 有 commit id 了,为什么还要有 tag?commit id 是一串无规律的数字,不好记;而 tag 是我们自定义的,例如我…...
【0334】Postgres内核之 auxiliary process(辅助进程)初始化 MyPgXact
1. MyPgXact(ProcGlobal->allPgXact)间接初始化 在上一篇文章【0333】Postgres内核之 auxiliary process(辅助进程)创建 PGPROC 中, 讲解了Postgres内核完成 AuxiliaryProcess 初始化 pid、lxid、procLatch、myProcLocks、lockGroupMembers等所有成员的过程。 这些成员…...
20.1 分析pull模型在k8s中的应用,对比push模型
本节重点介绍 : push模型和pull模型监控系统对比为什么在k8s中只能用pull模型的k8s中主要组件的暴露地址说明 push模型和pull模型监控系统 对比下两种系统采用的不同采集模型,即push型采集和pull型采集。不同的模型在性能的考虑上是截然不同的。下面表格简单的说…...
Ubuntu 镜像替换为阿里云镜像:简化你的下载体验
Ubuntu,作为一款广受欢迎的Linux发行版,以其稳定性和易用性著称。但你是否曾因为下载速度慢而感到沮丧?现在,你可以通过将Ubuntu的默认下载源替换为阿里云镜像来解决这个问题。本文将指导你如何完成这一过程。 为什么选择阿里云镜…...
The Sandbox 游戏制作教程第 6 章|如何使用装备制作出色的游戏 —— 避免环境危险
欢迎回到我们的系列,我们将记录 The Sandbox Game Maker 的 “On-Equip”(装备)功能的多种用途。 如果你刚加入 The Sandbox,装备功能是 “可收集组件”(Collectable Component)中的一个多功能工具…...
JavaScript中的输出方式
1. console.log() console.log() 是开发者在调试代码时最常用的方法。它将信息打印到浏览器的控制台,使开发者能够查看变量的值、程序的执行状态以及其他有用的信息。 用途:用于调试和记录程序运行时的信息。优点:简单易用,适合…...
力扣9.25
2306. 公司命名 给你一个字符串数组 ideas 表示在公司命名过程中使用的名字列表。公司命名流程如下: 从 ideas 中选择 2 个 不同 名字,称为 ideaA 和 ideaB 。 交换 ideaA 和 ideaB 的首字母。 如果得到的两个新名字 都 不在ideas 中,那么 …...
从零开始之AI面试小程序
从零开始之AI面试小程序 文章目录 从零开始之AI面试小程序前言一、工具列表二、开发部署流程1. VMWare安装2. Centos安装3. Centos环境配置3.1. 更改子网IP3.2. 配置静态IP地址 4. Docker和Docker Compose安装5. Docker镜像加速源配置6. 部署中间件6.1. MySQL部署6.2. Redis部署…...
Html2OpenXml:HTML转化为OpenXml的.Net库,轻松实现Html转为Word。
推荐一个开源库,轻松实现HTML转化为OpenXml。 01 项目简介 Html2OpenXml 是一个开源.Net库,旨在将简单或复杂的HTML内容转换为OpenXml组件。 该项目始于2009年,最初是为了将用户评论转换为Word文档而设计的 随着时间的推移,Ht…...
HumanNeRF:Free-viewpoint Rendering of Moving People from Monocular Video 精读
1. 姿态估计和骨架变换模块 人体姿态估计:HumanNeRF 通过已知的单目视频对视频中人物的姿态进行估计。常见的方法是通过人体姿态估计器(如 OpenPose 或 SMPL 模型)提取人物的骨架信息,获取 3D 关节的位置信息。这些关节信息可以帮…...
Springboot中基于注解实现公共字段自动填充
1.使用场景 当我们有大量的表需要管理公共字段,并且希望提高开发效率和确保数据一致性时,使用这种自动填充方式是很有必要的。它可以达到一下作用 统一管理数据库表中的公共字段:如创建时间、修改时间、创建人ID、修改人ID等,这些…...
Android 已经过时的方法用什么新方法替代?
过时修正举例 (Kotlin): getColor(): resources.getColor(R.color.white) //已过时// 修正后:ContextCompat.getColor(this, R.color.white) getDrawable(): resources.getDrawable(R.mipmap.test) //已过时//修正后:ContextCompat.getDrawable(this, R.mipmap.test) //…...
【RocketMQ】MQ与RocketMQ介绍
🎯 导读:本文介绍了消息队列(MQ)的基本概念及其在分布式系统中的作用,包括实现异步通信、削峰限流和应用解耦等方面的优势,并对ActiveMQ、RabbitMQ、RocketMQ及Kafka四种MQ产品进行了对比分析,涵…...
【笔记】自动驾驶预测与决策规划_Part4_时空联合规划
文章目录 0. 前言1. 时空联合规划的基本概念1.1 时空分离方法1.2 时空联合方法 2.基于搜索的时空联合规划 (Hybrid A* )2.1 基于Hybrid A* 的时空联合规划建模2.2 构建三维时空联合地图2.3 基于Hybrid A*的时空节点扩展2.4 Hybrid A* :时空节…...
Linux指令收集
文件和目录操作 ls: 列出目录内容。 -l 显示详细信息。-a 显示隐藏文件(以.开头的文件)。cd: 改变当前工作目录。 cd ~ 返回主目录。cd .. 上移一级目录。pwd: 显示当前工作目录。mkdir: 创建目录。 mkdir -p path/to/directory 创建多级目录。rmdir: 删…...
《C++并发编程实战》笔记(五)
五、内存模型和原子操作 5.1 C中的标准原子类型 原子操作是不可分割的操作,它或者完全做好,或者完全没做。 标准原子类型的定义在头文件<atomic>中,类模板std::atomic<T>接受各种类型的模板实参,从而创建该类型对应…...
在Python中实现多目标优化问题(5)
在Python中实现多目标优化问题 在Python中实现多目标优化,除了传统的进化算法(如NSGA-II、MOEA/D)和机器学习辅助的方法之外,还有一些新的方法和技术。以下是一些较新的或较少被提及的方法: 1. 基于梯度的多目标优化…...
【Linux:共享内存】
共享内存的概念: 操作系统通过页表将共享内存的起始虚拟地址映射到当前进程的地址空间中共享内存是由需要通信的双方进程之一来创建但该资源并不属于创建它的进程,而属于操作系统 共享内存可以在系统中存在多份,供不同个数,不同进…...
今年Java回暖了吗
今年回暖了吗 仅结合师兄和同学的情况 BG 大多双非本 少部分211本 985硕 去年十月一之前 基本转正都失败 十月一之前0 offer 只有很少的人拿到美团 今年十月一之前 有HC的基本都转正了(美团、字节等),目前没有HC的说也有机会(…...
a = Sw,其中a和w是向量,S是矩阵,求w等于什么?w可以写成关于a和S的什么样子的公式
给定公式: a S w a S w aSw 其中: a a a 是已知向量, S S S 是已知矩阵, w w w 是未知向量。 我们的目标是求解 w w w,即将 w w w 表示为 a a a 和 S S S 的函数。 情况 1:矩阵 S S S 可逆 如果矩…...
5分钟解锁浏览器Markdown阅读新体验:告别文档查看烦恼
5分钟解锁浏览器Markdown阅读新体验:告别文档查看烦恼 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 你是否经常需要查看技术文档、API说明或学习笔记,却…...
一屏融汇虚实 一擎驱动孪生:云边端协同架构赋能,打造城市园区港口通用数字孪生底座
一屏融汇虚实 一擎驱动孪生副标题:云边端协同架构赋能,打造城市园区港口通用数字孪生底座前言随着数字孪生向全域覆盖、多场景复用、高并发承载、实时性联动纵深发展,行业普遍面临场景割裂、架构分散、算力错配、底座不通用等痛点。城市、园区…...
从ANSI到EBCDIC:跨越地域与时代的字符编码全景解析
1. 字符编码的前世今生:从ASCII到EBCDIC 第一次在Windows记事本里保存文件时,看到"ANSI"这个选项我就懵了——这玩意儿和ASCII有什么关系?后来在跨国项目里处理日文数据时,更被SJIS和EUC-JP搞得焦头烂额。字符编码就像…...
不使用库函数,实现 strcpy,strcat,strcmp
文章目录 1、strcpy 原型2、strcmp 原型 1、strcpy 原型 char* strcpy(char* des, const char* source) {char* r des;assert((des ! NULL) && (source ! NULL));while((*r *source)!\0);return des; }可以自行实现: char* myStrcpy(char* dest, char* …...
图神经网络终于能“上生产”了?SITS 2026发布首个支持实时增量训练的AI原生图引擎(附Benchmark对比:吞吐提升6.8×,延迟压至12ms)
更多请点击: https://intelliparadigm.com 第一章:AI原生图计算应用:SITS 2026图神经网络工程化方案 SITS 2026 是面向大规模动态图场景的AI原生图计算框架,深度融合GNN训练、图拓扑实时更新与边缘-云协同推理能力。其核心设计摒…...
构建企业级日志监控:免费Syslog服务器部署方案
构建企业级日志监控:免费Syslog服务器部署方案 【免费下载链接】visualsyslog Syslog Server for Windows with a graphical user interface 项目地址: https://gitcode.com/gh_mirrors/vi/visualsyslog 在分布式系统架构中,网络设备、服务器和应…...
ClawTick CLI:为AI Agent构建可靠任务调度与监控的实践指南
1. 项目概述:为AI Agent构建可靠的任务调度基础设施 如果你正在开发或使用AI Agent,无论是基于LangChain、CrewAI还是OpenClaw,迟早会遇到一个核心问题:如何让这些智能体定时、可靠地执行任务?自己写个定时脚本&#…...
终极指南:华为光猫配置解密工具深度解析与应用实践
终极指南:华为光猫配置解密工具深度解析与应用实践 【免费下载链接】HuaWei-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/hu/HuaWei-Optical-Network-Terminal-Decoder 华为光猫配置解密工具(HuaWei-Optical-Ne…...
Wanwu框架:中文AI应用开发从入门到实践
1. 项目概述:一个面向中文场景的AI应用开发框架 最近在折腾AI应用开发的朋友,可能都绕不开一个痛点:如何快速、低成本地构建一个能理解中文、处理中文任务,并且部署起来不麻烦的智能应用?无论是想做个智能客服…...
3个秘籍解锁百度网盘提取码:告别繁琐搜索的智能解决方案
3个秘籍解锁百度网盘提取码:告别繁琐搜索的智能解决方案 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾在深夜急需下载学习资料,却被一个简单的提取码困住?或者在工作汇报前&#…...
