引言:为什么需要 Git Tag?
在软件开发的长河中,每个重要的里程碑都值得被标记。想象一下,你正在维护一个拥有数千次提交的项目,突然需要找到三个月前发布的 v2.1.0 版本的代码——如果没有标签,你将不得不在茫茫的提交历史中大海捞针。Git Tag 正是为了解决这个问题而生的版本标记系统。
Git Tag 的核心概念
Git Tag 是指向特定提交(commit)的引用,它就像是在项目历史长河中插入的书签。与分支不同的是,标签一旦创建就不会随着新的提交而移动,它永远指向创建时的那个提交点。
标签的两种类型
Git 提供了两种类型的标签,每种都有其特定的使用场景:
1. 轻量标签(Lightweight Tags)
轻量标签本质上就是一个指向特定提交的引用,类似于一个不会移动的分支。
# 创建轻量标签
git tag v1.0.0
# 为特定提交创建轻量标签
git tag v1.0.0 9fceb022. 附注标签(Annotated Tags)
附注标签是存储在 Git 数据库中的完整对象,包含打标签者的信息、日期、标签信息,并且可以使用 GPG 签名。
# 创建附注标签
git tag -a v1.0.0 -m "Release version 1.0.0"
# 查看标签详细信息
git show v1.0.0标签与分支的区别
| 特性 | 标签(Tag) | 分支(Branch) |
|---|---|---|
| 可移动性 | 不可移动,永远指向固定提交 | 随着新提交自动移动 |
| 用途 | 标记版本发布点 | 开发新功能或修复 |
| 生命周期 | 长期存在 | 可能会被合并后删除 |
| 元数据 | 可包含额外信息(附注标签) | 仅是引用 |