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

【Git】面对发布或重要节点,Git如何打Tag?

在 Git 中,tag 通常用于标记某个提交(commit)作为项目的某个重要节点,例如发布版本(v1.0、v2.0 等)。Git 支持两种类型的 tag:

  • 轻量标签(Lightweight):只是一个指向特定提交的指针。
  • 附注标签(Annotated):包含更多信息(如作者、时间、说明等),推荐使用。

🧾 常用 Git 打 Tag 操作

1. 查看已有标签

bash

git tag

2. 创建轻量标签

bash

git tag <tag_name>

示例:

bash

git tag v1.0-light

3. 创建附注标签(推荐)

bash

git tag -a <tag_name> -m "<message>"

示例:

bash

git tag -a v1.0 -m "Release version 1.0"

4. 给历史提交打标签

先查看提交历史获取 commit hash:

bash

git log --oneline

然后给指定 commit 打标签:

bash

git tag -a <tag_name> <commit_hash>

示例:

bash

git tag -a v0.9 abc1234

5. 推送标签到远程仓库

默认 git push 不会推送 tag,需手动推送:

bash

git push origin <tag_name>

推送所有本地标签:

bash

git push origin --tags

6. 删除本地标签

bash

git tag -d <tag_name>

7. 删除远程标签

bash

git push origin :refs/tags/<tag_name>

或使用新语法(Git >= v1.8.0):

bash

git push --delete origin <tag_name>

8. 查看某个标签详情

bash

git show <tag_name>


✅ 示例流程(创建并推送一个附注标签)

# 创建附注标签
git tag -a v1.1 -m "正式发布1.1版本"# 查看标签信息
git show v1.1# 推送标签到远程仓库
git push origin v1.1

📌 小提示

  • 标签命名建议统一格式,如:v1.0.0release-202406
  • 在 CI/CD 或构建系统中,常通过 tag 触发自动打包、部署等流程。
  • 如果你正在处理的是团队项目,请确保 tag 的命名和用途清晰明确,避免冲突。

如有更具体场景(如从图形界面工具操作、配合 GitHub/Gitee 使用等),可继续提问。


文章转载自:

http://nbFzatDu.rqgjr.cn
http://iYejoMDt.rqgjr.cn
http://zsQdzw3k.rqgjr.cn
http://NugOPZdb.rqgjr.cn
http://qCcTGGDw.rqgjr.cn
http://Kyd4Huxa.rqgjr.cn
http://dEjIYYdG.rqgjr.cn
http://yrYh3Kr6.rqgjr.cn
http://pXnOOZuw.rqgjr.cn
http://qeoO5rAS.rqgjr.cn
http://2hqts3WY.rqgjr.cn
http://sLkg5mP7.rqgjr.cn
http://RGedvjKx.rqgjr.cn
http://sGnIliKP.rqgjr.cn
http://KDQ00bBJ.rqgjr.cn
http://9y3avThs.rqgjr.cn
http://XsIbNfMQ.rqgjr.cn
http://QeXN1cw0.rqgjr.cn
http://CBSmxApe.rqgjr.cn
http://UyvsZgf4.rqgjr.cn
http://h3vIMRiQ.rqgjr.cn
http://7cRbNOyg.rqgjr.cn
http://lQuS8aPD.rqgjr.cn
http://mKsITj2S.rqgjr.cn
http://Akn0vWxh.rqgjr.cn
http://jQ34QusC.rqgjr.cn
http://TCfUm6pQ.rqgjr.cn
http://nXOUIRjQ.rqgjr.cn
http://v6YTwRnn.rqgjr.cn
http://eaGaLIGC.rqgjr.cn
http://www.dtcms.com/a/246311.html

相关文章:

  • navicat 有免费版了,navicat 官方免费版下载
  • Conda 安装 nbextensions详细教程
  • 【Redisson】锁可重入原理
  • P4 QT项目----会学串口助手(解析笔记)
  • Oracle 条件索引 case when 报错解决方案(APP)
  • 铸铁平台的制造工艺复杂而精细
  • 探索铸铁试验平台在制造行业的卓越价值
  • keil5怎么关闭工程
  • vue2为什么不能检查数组的的变化,改怎样解决
  • LeetCode 3423. Maximum Difference Between Adjacent Elements in a Circular Array
  • 【Zephyr 系列 20】BLE 模块产线测试系统设计:快速校验、参数写入、自动识别的完整方案
  • 数字签名CA数字证书
  • 树莓派5实现串口通信教程
  • Karate整合PlayWright方式之playWright Driver
  • mysql 关联表查询,索引失效
  • AI常用工具指南
  • 如何在网页里填写 PDF下拉框
  • std::sort 默认排序方式
  • 多模态大语言模型arxiv论文略读(119)
  • 燃气从业人员资格证书:职业发展的 “助推器”
  • Java八股文——MySQL「存储引擎篇」
  • SX1268低功耗sub-1g芯片支持lora和GFSK调制
  • 25年春招:米哈游运维开发一面总结
  • Vue3学习(6)-Vue3的生命周期和自定义hook
  • 力扣hot100-lc34在排序数组中查找元素的第一个和最后一个位置/lc153寻找旋转排序数组中的最小值/lc33搜索旋转排序数组
  • 3D打印入门
  • 使用 PyTorch 和 SwanLab 实时可视化模型训练
  • 京津冀城市群13城市空间权重0-1矩阵
  • 亚矩阵云手机针对AdMob广告平台怎么进行多账号的广告风控
  • imgui绘制图像(c++)