ClockStudio图表进阶:双Y轴与高级工具实战指南
2026/6/24 1:45:43
作用—— 为重要版本(如发布版本)创建易记的名称(如v1.2),替代难记的commit id,类似IP和域名的关系
本质—— 指向特定commit的不可变指针(与分支不同,分支会随提交移动)
标签总是和某个
commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么两个分支上都可以看到这个标签
特点
commit绑定,若commit存在于多个分支,标签在这些分支均可见commit、创建者、时间及可选说明信息使用场景
v1.0.0),便于后续回滚或发布feature-complete)SemVer):主版本.次版本.修订号(如v2.1.3)git tag -a v1.1 -m "新增用户登录功能")git tag作用—— 管理标签,包括创建、列出、删除或验证等
语法
gittag[<options>]<tagname>[<commit>]参数options | 说明 |
|---|---|
-a/--annotate | 创建附注标签annotated tag,包含作者、日期和描述信息 |
-m <msg>/--message=<msg> | 指定标签的描述信息(必须与-a一起使用) |
-d | 删除指定标签 |
-l/--list | 列出符合模式的标签(如git tag -l "v1.*") |
-s/--sign | 创建GPG签名标签(需配置GPG密钥) |
具体示例
列出所有标签
$gittag创建轻量标签(无额外信息)
$gittag v1.0对历史提交打标签
$gitlog --oneline# 查看 commit id$gittag v0.9 a1b2c3d# 对 commit a1b2c3d 打标签创建附注标签(含描述)
$gittag -a v1.1 -m"正式发布版本"删除本地标签
$gittag -d v0.9推送标签到远程
$gitpush origin v1.0 $gitpush origin --tags# 推送所有未推送的标签删除远程标签
$gittag -d v1.0 $gitpush origin :refs/tags/v1.0git show作用—— 显示Git对象(如标签、提交、文件)详细信息,包括变更内容、作者、时间等
语法
gitshow[<options>][<object>]参数options | 说明 |
|---|---|
--pretty=format:"..." | 自定义输出格式(如%H显示完整commit hash) |
--name-only | 仅显示受影响的文件名,不显示具体变更 |
--stat | 显示简略统计信息(变更行数) |
具体示例
查看标签信息(含关联的提交和变更)
$gitshow v1.0 tag v1.0 Tagger: Alice<alice@example.com>Date: Mon Jan112:00:002024+0800 Version1.0release commit a1b2c3d... Author: Bob<bob@example.com>Date: Sun Dec3112:00:002023+0800 feat: Add new featurediff--git a/file.txt b/file.txt...查看某次提交的变更
$gitshow abc1234查看分支最新提交
$gitshow main查看所有标签
$gittag v0.9 v1.0注意:标签不是按时间顺序列出,而是按字母排序的
查看标签信息
$gitshow v0.9 commit f52c63349bc3c15dfasf972b82c8f286(tag: v0.9)Author: Li Hua<example@mail.com>Date: Fri May2309:07:002025+0800 添加合并功能diff--git a/readme.txt b/readme.txt...v1.0切换分支—— 切换到要打标签的分支
$gitbranch * dev master$gitcheckout master Switched to branch'master'创建标签—— 当前提交打新标签v1.0
$gittag v1.0v1.0查找提交—— 找到历史提交的commit id
$gitlog --pretty=oneline --abbrev-commit 12a631b(HEAD ->master)合并bug修复 f52c633 添加合并功能 cf810e4 解决冲突创建标签—— 历史提交打新标签v1.0
$gittag v0.9 f52c633创建带说明标签—— 说明中,-a指定标签名,-m指定说明文字,最后加上commit id值
$gittag -a v0.1 -m"version 0.1 released"cf810e4查看标签信息
$gitshow v0.1 tag v0.1 Tagger: Li Hua<example@mail.com>Date: Fri May2309:07:002025+0800 version0.1released commit cf810e49bc3sad972b82c8f286(tag: v0.1)Author: Li Hua<example@mail.com>Date: Fri May2309:07:002025+0800 解决冲突diff--git a/readme.txt b/readme.txt...删除标签 —— 删除指定名称标签
$ git tag -d v0.1 Deleted tag 'v0.1' (was cf810e4)[!important]
标签不会自动同步到远程,需要显式推送
推送指定名称标签
$ git push origin v1.0 Total 0 (delta 0), reused 0 (delta 0) To github.com:michaelliao/learngit.git * [new tag] v1.0 -> v1.0推送所有标签 —— 采用指令git push的--tags参数推送所有标签
$ git push origin --tags Total 0 (delta 0), reused 0 (delta 0) To github.com:michaelliao/learngit.git * [new tag] v0.9 -> v0.9本地删除标签
$gittag -d v0.9 Deleted tag'v0.9'(was f52c633)远程删除标签
$gitpush origin :refs/tags/v0.9 To github.com:michaelliao/learngit.git -[deleted]v0.9