目录
一、标签概念
标签tag,用来标识某次提交commit,相当于起一个别名。例如,在一个软件项目中,当要发行某一个版本时,针对最后一次提交commit打一个v1.0这样的标签tag来标识它。
标签tag的意义在于标识提交,因为commit id相对复杂,故使用标签tag来管理特殊的某一次提交。
二、创建标签
执行git tag 标签名可以对最新一次提交打标签。
//git tag 标签名
[euto@VM-4-13-centos linux]$ git tag v0.1
执行git tag可以查看所有的标签。
//git tag
[euto@VM-4-13-centos linux]$ git tag
v0.1
执行git tag 标签名 commit id对指定的提交打标签。
//git tag 标签名 commit id
[euto@VM-4-13-centos linux]$ git tag v0.2 98be2530c2df8b12b9303c237bed5c061b8e6239
[euto@VM-4-13-centos linux]$ git tag
v0.1
v0.2
注意,这里列举所有标签时,是按字母顺序排序,不是标签创建的时间。
git还支持创建带有说明的标签,用-a 指定标签名,-m指定说明文字。
//git tag -a 标签名 -m "说明" commit id
[euto@VM-4-13-centos linux]$ git tag -a v0.3 -m "第三个测试版本"
c33fce03dcfe6641a97dab26099ad68e4142e745
执行git show 标签名查看标签信息。
[euto@VM-4-13-centos linux]$ git show v0.3
tag v0.3
Tagger: UtoCoo <xydbws@163.com>
Date: Mon Sep 9 09:30:44 2024 +0800
第三个测试版本
commit c33fce03dcfe6641a97dab26099ad68e4142e745
Author: Euto <xydbws@163.com>
Date: Sat Sep 7 11:07:43 2024 +0800
本次变动为了观察git对象
diff --git a/315/test.cpp b/315/test.cpp
index 5e6569d..8a476b2 100644
--- a/315/test.cpp
+++ b/315/test.cpp
@@ -1,3 +1,6 @@
t
dev cp
+
+
+"新增一行用于测试"
执行tree .git观察到git追踪管理的标签。
`-- refs
|-- heads
| `-- main
|-- remotes
| `-- origin
| `-- HEAD
`-- tags
|-- show
|-- v0.1
|-- v0.2
`-- v0.3
三、标签操作
执行git tag -d 标签名删除标签。
[euto@VM-4-13-centos linux]$ git tag -d v0.3
Deleted tag 'v0.3' (was fbf7d56)
[euto@VM-4-13-centos linux]$ git tag
show
v0.1
v0.2
以上对标签的操作都是在本地仓库中进行的,标签也可以推送到远程。
执行git push origin 标签名推送某个标签到远程。
[euto@VM-4-13-centos linux]$ git push origin v0.1
Total 0 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag 114c418c
To git@gitee.com:UtoCoo/linux.git
* [new tag] v0.1 -> v0.1
如果本地有多个标签,也可以一次全部推送到全程,执行git push origin --tags。
[euto@VM-4-13-centos linux]$ git push origin --tags
Counting objects: 1, done.
Writing objects: 100% (1/1), 181 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag 454eb78c
To git@gitee.com:UtoCoo/linux.git
* [new tag] show -> show
* [new tag] v0.2 -> v0.2
如果标签已经推送到远程,现在要删除标签,第一步先在本地仓库删除标签。
[euto@VM-4-13-centos linux]$ git tag -d v0.2
Deleted tag 'v0.2' (was 98be253)
然后再推送到远程,执行git push origin :标签名。
[euto@VM-4-13-centos linux]$ git push origin :v0.2
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag 884efd8e
To git@gitee.com:UtoCoo/linux.git
- [deleted] v0.2