Git企业开发控制理论和实操-从入门到深入(五)|标签管理

前言

那么这里博主先安利一些干货满满的专栏了!

首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。

然后就是博主最近最花时间的一个专栏《Git企业开发控制理论和实操》希望大家多多关注!


Git的标签管理

理解标签

标签 tag ,可以简单的理解为是对某次 commit 的一个标识,相当于起了一个别名。例如,在项目发布某个版本的时候,针对最后一次 commit 起一个 v1.0 这样的标签来标识里程碑的意义。

这有什么用呢?相较于难以记住的 commit id,tag 很好的解决这个问题,因为 tag 一定要给个让人容易记住,且有意义的名字。当我们需要回退到某个重要版本时,直接使用标签就能很快定位到。

操作标签

先切换到要打标签的分支上。然后打标签。

git tag v1.0 # 给最新的这一次提交打上标签名为"v1.0"
git tag # 查看当前有哪些标签存在

可以证明一下打标签是打给了最新的一次提交。

├── ORIG_HEAD
├── packed-refs
└── refs
    ├── heads
    │   └── master
    ├── remotes
    │   └── origin
    │       ├── HEAD
    │       └── master
    └── tags
        └── v1.0

24 directories, 38 files
(base) [yufc@ALiCentos7:~/Src/Bit-Courses/GitDevelopment/remote-gitcode]$ cat .git/refs/tags/v1.0 
7393ea000a2f7baae095b045b0bcd946718d404d
(base) [yufc@ALiCentos7:~/Src/Bit-Courses/GitDevelopment/remote-gitcode]$ git log
commit 7393ea000a2f7baae095b045b0bcd946718d404d
Author: Yufch <yufc779@gmail.com>
Date:   Thu Aug 24 23:48:08 2023 +0800

可以看到tag里面存的就是最新的commit id

给之前的commit打标签也是可以的,后面跟上commit id就行了。

git tag v0.9 xxxx # 后面跟上commit id就行了

当然,tag后面也可以跟上描述。

git tag -a v0.8 -m "important tag:XXX" xxxx # 后面跟上commit id即可

然后怎么查看这个描述呢?

git show v0.8 # 查看v0.8这个标签的详细信息
(base) [yufc@ALiCentos7:~/Src/Bit-Courses/GitDevelopment/remote-gitcode]$ git lpa
7393ea0 add .gitignore
8513266 update file.txt.
7352d02 create file.txt
a9af182 Initial commit
(base) [yufc@ALiCentos7:~/Src/Bit-Courses/GitDevelopment/remote-gitcode]$ git tag -a v0.8 -m "important tag:XXX" a9af182
(base) [yufc@ALiCentos7:~/Src/Bit-Courses/GitDevelopment/remote-gitcode]$ git tag
v0.8
v1.0
(base) [yufc@ALiCentos7:~/Src/Bit-Courses/GitDevelopment/remote-gitcode]$ git show v0.8
tag v0.8
Tagger: Yufch <yufc779@gmail.com>
Date:   Fri Aug 25 17:02:54 2023 +0800

important tag:XXX

commit a9af182743c539e1ed0ba46cf847580e542473ed
...

推送标签

git push origin v1.0 # 把tag: v1.0 推送到远程
(base) [yufc@ALiCentos7:~/Src/Bit-Courses/GitDevelopment/remote-gitcode]$ git push origin v1.0
Total 0 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To git@gitee.com:Yufch/remote-gitcode.git
 * [new tag]         v1.0 -> v1.0

在这里插入图片描述
在这里插入图片描述

已经被推送到远程了。

当然,也可以一次性推送所有的标签。

git push origin --tags # 推送本地所有标签到远程
(base) [yufc@ALiCentos7:~/Src/Bit-Courses/GitDevelopment/remote-gitcode]$ git push origin --tags
Counting objects: 1, done.
Writing objects: 100% (1/1), 162 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To git@gitee.com:Yufch/remote-gitcode.git
 * [new tag]         v0.8 -> v0.8
(base) [yufc@ALiCentos7:~/Src/Bit-Courses/GitDevelopment/remote-gitcode]$ 

删除标签

git tag -d v1.0 # 删除本地的v1.0标签

然后我说过,不能直接操作远程,但是我们可以在本地,通过push的方式删除远程的标签。

git push origin :v1.0

posted @ 2023-08-27 20:53  背包Yu  阅读(0)  评论(0编辑  收藏  举报  来源