news 2026/1/1 17:17:01

【Git学习】Git的tag标签

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Git学习】Git的tag标签

在 Git 中,tag(标签)是用于标记仓库历史中特定提交的快照,通常用于标识版本发布,方便后续快速回溯到某个稳定版本。与分支不同,标签是静态的,一旦创建不会随新提交自动移动,而分支是动态的,会跟随新提交更新。

需要注意的是标签不依赖于分支,它直接指向特定提交的静态指针,它的存在完全依赖于提交本身,而与任何分支都没有绑定关系,无论分支如何创建、删除、移动,只要标签指向的提交还在仓库中,标签就始终有效,这种设计确保了标签的独立性和持久性。

tag 本地标签管理

Git 中有两种常用标签类型

第一种是创建一个轻量级标签,在HEAD指针所指向的提交点(当前所在分支)创建标签 git tag v1.0.1

查看现有标签 git tag

创建一个带有附注的标签,git tag -a v1.0.2 -m 'release version'

-a表示附注标签,-m指定注释

删除本地标签 git tag -d v1.0.2

远程标签

git push 不会将本地标签推送到远程仓库,如下

需显式推送,推送标签到远程仓库 git push origin v1.0.1

点击下载,会将打包成zip文件,记录着某一时刻状态下的代码

test-git1-v1.0.1.zip 如下

把多个标签推送到远程 git push origin 标签1 标签2……

把所有标签推送到远程 git push origin --tag

查看远程标签列表 git ls-remote --tags origin

该仓库下另一个用户查看标签发现没有标签内容,因为 Git 默认不会自动拉取远程标签,需要通过特定命令显式拉取

标签拉取 git fetch origin v1.0.1 或 git pull

删除远程标签需要通过命令显式操作,标签默认不会自动同步删除

删除本地标签后,删除远程标签 git push origin :refs/tags/v1.0.3

将一个空引用 : 推送到远程仓库的标签路径 refs/tags/,从而删除该标签

远程标签被删除

另一种删除远程标签的方式,语法更直观

删除本地标签后,删除远程标签 git push origin --delete tag 标签1 标签2…

标签检出

在 Git 中标签检出(checking out a tag)指的是将工作区和暂存区的代码切换到标签所指向的那个特定提交的状态。简单说,就是让当前项目的代码恢复到该标签对应的版本快照。

检出本地仓库标签 git checkout v1.0.0

注意标签指向的是固定的提交而不是分支,因此,检出标签后Git 会进入分离头指针状态

这样存在一定的风险,在分离头指针状态下,你可以修改代码并提交,但这些新提交不会被任何分支指向,如果之后切换到其他分支,这些新提交可能会因为没有分支引用而被 Git 垃圾回收机制清理。

如果只是临时查看旧版本代码,分离头指针状态没问题

但如果需要基于标签 v1.0.1 的代码进行修改,正确的做法是:创建一个名为 dev2 的新分支,将这个分支的初始状态设置为标签 v1.0.1 所指向的提交,并且在创建的同时直接切换到 dev2 分支

git checkout -b dev2 v1.0.1

这样操作后,后续在 dev2 分支上的所有新提交都会被该分支跟踪,既保留了 v1.0.1 版本的基础,又能安全地记录修改,避免因分离头指针导致的提交丢失风险。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/24 14:44:16

Zig 编程语言 v0.15.2 中文手册

作为一个Copilot自动填充的HelloWorld都跑不起来的快速变更的新语言, 跟进新的手册学习显然很有必要. 使用Claude 4.5 Sonnet翻译, 下载: Water-Run/llm-translate-documents: 一些使用大模型翻译的英文文档. 或直接: git clone https://github.com/Water-Run/llm-translate-…

作者头像 李华
网站建设 2025/12/25 7:19:51

施耐德BMXNOE0110:Modicon M580平台的工业级以太网通信模块

施耐德电气BMXNOE0110是专为其旗舰Modicon M580可编程自动化控制器(ePAC)设计的一款标准型工业以太网通信模块。该模块是构建基于以太网架构的现代自动化系统的基础通信单元,负责为控制器提供稳定、高效的网络连接能力,是实现设备…

作者头像 李华
网站建设 2025/12/24 15:27:35

Wan2.2-T2V-A14B在跨模态理解方面的核心优势解析

Wan2.2-T2V-A14B在跨模态理解方面的核心优势解析 你有没有想过,有一天只需要写一句话:“一个穿红裙的女孩在黄昏的海边奔跑,海浪轻拍她的脚踝,夕阳把沙滩染成金色”,AI就能立刻为你生成一段720P高清、动作自然、光影细…

作者头像 李华
网站建设 2025/12/24 10:49:19

3秒语音克隆革命:NeuTTS Air重构嵌入式语音交互新范式

3秒语音克隆革命:NeuTTS Air重构嵌入式语音交互新范式 【免费下载链接】neutts-air 项目地址: https://ai.gitcode.com/hf_mirrors/neuphonic/neutts-air 在当今AI语音技术快速发展的时代,NeuTTS Air凭借其突破性的3秒语音克隆能力和本地化部署优…

作者头像 李华
网站建设 2025/12/25 1:54:55

5步掌握视觉语言模型高效微调:从理论到实战全解析

5步掌握视觉语言模型高效微调:从理论到实战全解析 【免费下载链接】smol-vision 项目地址: https://ai.gitcode.com/hf_mirrors/merve/smol-vision 视觉语言模型正成为多模态AI的核心技术,但如何在有限硬件资源下实现高效微调仍是开发者面临的挑…

作者头像 李华
网站建设 2025/12/30 16:18:06

建木无代码编排:企业级DevOps流程自动化实战指南

建木无代码编排:企业级DevOps流程自动化实战指南 【免费下载链接】建木 建木是一个面向DevOps领域的极易扩展的开源无代码(图形化)/低代码(GitOps)工具。可以帮助用户轻松编排各种DevOps流程并分发到不同平台执行。 项目地址: https://gitcode.com/jianmu-dev/jia…

作者头像 李华