git:标签管理

发布于:2024-09-18 ⋅ 阅读:(41) ⋅ 点赞:(0)

目录

一、标签概念

二、创建标签

三、标签操作


一、标签概念

        标签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