当前位置: 首页 > news >正文

Git 打标签完全指南:从本地创建到远端推送

在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点。然而,仅创建本地标签往往不够,如何将其高效地推送到远程仓库以实现团队共享,是许多开发者会遇到的实际问题。


一、标签的两种“形态”

类型本质适合场景命令示例
轻量标签仅是一个指向提交的引用临时/本地标记git tag v1.0.0
附注标签独立对象,含作者/日期/GPG 签名正式发版、开源发布git tag -a v1.0.0 -m "Release v1.0.0"

90% 的场景请用 附注标签,因为它携带的元数据对版本追溯至关重要。


二、本地创建与查看

1. 打附注标签(推荐)

# 给当前 HEAD 打标签
git tag -a v1.0.0 -m "Release version 1.0.0"# 给指定提交打标签
git tag -a v1.0.0 9fbc3d2 -m "Release v1.0.0"

2. 查看标签

git tag              # 简洁列表
git show v1.0.0      # 查看标签详情及对应提交

输出示例:

tag v1.0.0
Tagger: YourName <you@example.com>
Date:   Sun Sep 14 00:00:00 2025 +0800Release version 1.0.0

三、推送标签到远端

默认 git push 不会 传标签!必须显式操作。

场景命令
推送单个标签git push origin v1.0.0
一次性推送所有标签git push origin --tags
推送时包含新分支及标签git push origin --follow-tags

示例:

# 推送 v1.0.0
git push origin v1.0.0# CI 自动发版常用:只推送本次打的标签
git push origin --follow-tags

四、删除标签(本地 & 远端)

位置命令
本地git tag -d v1.0.0
远端git push origin --delete v1.0.0git push origin :refs/tags/v1.0.0

一条龙删除:

git tag -d v1.0.0
git push origin --delete v1.0.0

五、高频问题速查

1、推送时报 “error: src refspec v1.0.0 matches more than one”

本地有同名分支,先删除分支或显式指定 refs/tags/v1.0.0

2、CI 没触发 Release 流程

确认是否推了 附注标签 且 CI 监听的是 tag 事件。

3、如何补打旧版本标签?

git log --oneline       # 找到历史提交
git tag -a v0.9.0 5f3d2e1 -m "Retroactively tag v0.9.0"
git push origin v0.9.0

六、一张图总结(保存即可)

本地创建 → 查看 → 推送 →(可选)删除│         │       │         │▼         ▼       ▼         ▼
git tag -a  git tag  git push  git tag -d
v1.0.0      v1.0.0   origin    v1.0.0v1.0.0    git push--delete

  • 官方手册:Git Tagging
  • 语义化版本规范 2.0.0
  • 用 GPG 给标签签名:git tag -s v1.0.0 -m "Signed release"

文章转载自:

http://ugP14oqR.qwmpn.cn
http://tbTVtMde.qwmpn.cn
http://gVn5J6Zg.qwmpn.cn
http://XUgXTD5h.qwmpn.cn
http://ZxXgt0Iw.qwmpn.cn
http://zH0eZiGd.qwmpn.cn
http://HULDtgug.qwmpn.cn
http://GsL4m7z1.qwmpn.cn
http://TQCSqkRT.qwmpn.cn
http://LqSeLjLJ.qwmpn.cn
http://KsLrtldg.qwmpn.cn
http://ZdbRaFbu.qwmpn.cn
http://wzfdZx3k.qwmpn.cn
http://pRa5pQCE.qwmpn.cn
http://7Rg0nLpl.qwmpn.cn
http://Xcr5A9kg.qwmpn.cn
http://dCWuXosd.qwmpn.cn
http://tadVZX97.qwmpn.cn
http://E8KBu7yt.qwmpn.cn
http://ZDOujbqG.qwmpn.cn
http://XytMNAYv.qwmpn.cn
http://ppw4cq7m.qwmpn.cn
http://sXyzCIKZ.qwmpn.cn
http://FIr5uldr.qwmpn.cn
http://lXdr9e1h.qwmpn.cn
http://DuQwuMdG.qwmpn.cn
http://l9OdATOl.qwmpn.cn
http://VFGRvEZY.qwmpn.cn
http://9mYi3Rxt.qwmpn.cn
http://7QjI4F1g.qwmpn.cn
http://www.dtcms.com/a/383194.html

相关文章:

  • RabbitMQ如何保障消息的可靠性
  • window显示驱动开发—枚举显示适配器的子设备
  • 《嵌入式硬件(九):基于IMX6ULL的蜂鸣器操作》
  • 《嵌入式硬件(十二):基于IMX6ULL的时钟操作》
  • Redis最佳实践——性能优化技巧之监控与告警详解
  • PySpark基础例题(包含map、reduceByKey、filter、sortBy等算子)
  • 导购APP佣金模式的分布式锁实现:基于Redis的并发控制策略
  • 运维自动化工具Ansible大总结20250914
  • Linux 库开发入门:静态库与动态库的 2 种构建方式 + 5 个编译差异 + 3 个加载技巧,新手速看
  • Effective Python 第28条:Python列表推导式的简洁与复杂性管理
  • 【MySQL】从零开始学习MySQL:基础与安装指南
  • 基于STM32的病人监护系统
  • Python与Go结合
  • AI大师系列——杰夫·辛顿(深度学习)
  • Unity核心概念⑨:Screen
  • 《MLB美职棒大联盟》专业运动员标准·棒球1号位
  • reversed()方法
  • Altium Designer(AD24)另存为功能介绍
  • OD C卷 - 计算三叉搜索树的高度
  • 导购返利APP的数据库性能优化:索引设计与查询调优实践
  • pretrain-Alignment范式的强大与极限——李宏毅大模型2025第五讲笔记
  • CSP集训错题集 第一周
  • MCU软件驱动分离
  • 浏览器中javascript时间线,从加载到执行
  • SP‘24 SSRFuzz论文学习
  • 【算法】day2 双指针+滑动窗口
  • 拆解 AI 大模型 “思考” 逻辑:从数据训练到推理输出的完整链路
  • Axios在鸿蒙应用开发中的使用
  • Go高性能双端队列Deque实战指南
  • StringBuilder 深度解析:数据结构与扩容机制的底层细节