【Git】6. 标签管理

标签管理

理解标签

标签 tag ,可以简单的理解为是对某次 commit 的⼀个标识,相当于起了⼀个别名。
例如,在项⽬发布某个版本的时候,针对最后⼀次 commit 起⼀个 v1.0 这样的标签来标识⾥程碑的意义。
这有什么⽤呢?相较于难以记住的 commit id , tag 很好的解决这个问题,因为 tag ⼀定要给⼀个让⼈容易记住,且有意义的名字。
当我们需要回退到某个重要版本时,直接使⽤标签就能很快定位到。

创建标签

在Git中打标签⾮常简单,⾸先,切换到需要打标签的分⽀上

hyb@139-159-150-152:~/git_teaching$ git branch 
* master

新建标签 – git tag [name]

然后,敲命令 git tag [name] 就可以打⼀个新标签:

hyb@139-159-150-152:~/git_teaching$ git tag v1.0

查看所有标签 – git tag

可以⽤命令 git tag 查看所有标签:

hyb@139-159-150-152:~/git_teaching$ git tag
v1.0

默认标签是打在最新提交的 commit 上的。那如何在指定的commit上打标签呢?⽅法是找到历史提
交的commit id,然后打上就可以了,⽰例如下:

# 历史记录
hyb@139-159-150-152:~/git_teaching$ git log --pretty=oneline --abbrev-commit
97811ab (HEAD -> master, tag: v1.0, origin/master, origin/HEAD) add .gitignore
60e6b0a update README.md.
7ce3183 create file.txt
c6ce3f0 Initial commit
# 对 Initial commit 这次提交打标签
hyb@139-159-150-152:~/git_teaching$ git tag v0.9 c6ce3f0
hyb@139-159-150-152:~/git_teaching$ git tag
v0.9
v1.0

注意,标签不是按时间顺序列出,⽽是按字⺟排序的。
可以⽤ git show [tagname] 查看标签信息。

查看标签信息 – git show [tagname]

hyb@139-159-150-152:~/git_teaching$ git show v1.0 
commit 97811abd1d43774aeb54fee32bf4fc76b2b08170 (HEAD -> master, tag: v1.0, orig
Author: hyb91 <2689241679@qq.com>
Date: Fri May 12 17:27:06 2023 +0800
 add .gitignore
diff --git a/.gitignore b/.gitignore
...

Git 还提供可以创建带有说明的标签,⽤-a指定标签名,-m指定说明⽂字,格式为:

git tag -a [name] -m "XXX" [commit_id]

另外,打完标签之后,使⽤ tree .git 命令查看⼀下你的本地库有什么变化,肯定能帮助你理解!

操作标签

删除本地标签 git tag -d [tagname]

如果标签打错了,也可以删除:

hyb@139-159-150-152:~/git_teaching$ git tag 
v0.9
v1.0
hyb@139-159-150-152:~/git_teaching$ git tag -d v0.9 
Deleted tag 'v0.9' (was c6ce3f0)
hyb@139-159-150-152:~/git_teaching$ git tag 
v1.0

因为创建的标签都只存储在本地,不会⾃动推送到远程。所以,打错的标签可以在本地安全删除。
如果要推送某个标签到远程,使⽤命令 git push origin <tagname>

本地推送远端 – git push origin [tagname]

hyb@139-159-150-152:~/git_teaching$ git tag
v1.0
hyb@139-159-150-152:~/git_teaching$ git push origin v1.0 
Total 0 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To gitee.com:hyb91/git_teaching.git
 * [new tag] v1.0 -> v1.0

此时,查看远端码云,看到了标签已经被更新!完美!
在这里插入图片描述
当然,如果你本地有很多标签,也可以⼀次性的全部推送到远端:

全部推送 – git push origin --tags

git push origin --tags

如果标签已经推送到远程,要删除远程标签就⿇烦⼀点,先从本地删除:

hyb@139-159-150-152:~/git_teaching$ git tag
v1.0
hyb@139-159-150-152:~/git_teaching$ git tag -d v1.0 
Deleted tag 'v1.0' (was 97811ab)

然后,从远程删除。删除命令也是push,但是格式如下:

推送删除标签 – git push origin :refs/tags/[tagname]

hyb@139-159-150-152:~/git_teaching$ git push origin :refs/tags/v1.0
remote: Powered by GITEE.COM [GNK-6.4]
To gitee.com:hyb91/git_teaching.git
 - [deleted] v1.0

在码云上查看确实删除成功:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值