git-tag

1.tag简介

1-1.说明

tag 就是 对某次 commit 的一个标识,相当于起了一个别名

创建的标签会在.git/refs/tags

1-1-1.查看tags目录

ls .git/refs/tags
v1.0.0 v2.0.0

1-1-2.查看tags下的标签文件

cat .git/refs/tags/v1.0.0
f3d2540bdaf36e6b0092ccd0d3aa908c19f2f708

1-2.tag类型

  • 轻量标签
    • 只是某个commit 的引用,可以理解为是一个commit的别名
  • 附注标签
    • 是存储在git仓库中的一个完整对象,包含打标签者的名字、电子邮件地址、日期时间 以及其他的标签信息。它是可以被校验的,可以使用 GNU Privacy Guard (GPG) 签名并验证

2.本地tag

2-1.创建标签

2-1-1.创建轻量标签

# 在当前HEAD创建轻量标签
git tag <tag_name>

# 给指定commit创建轻量标签
git tag <tag_name> <commit>

2-1-2.创建附注标签

-a:表示注释标签

-m:填写注释信息

# 在当前HEAD创建附注标签
git tag -a <tag_name> -m <msg info>

# 给指定commit创建附注标签
git tag -a <tag_name> <commit> -m <msg info>

2-2.删除标签

删除指定标签

git tag -d <tag_name>

删除v1.0.1标签

git tag -d v1.0.1 
Deleted tag 'v1.0.1' (was 7bd8dad)

2-3.修改标签

本质是替换标签名

# 在旧的标签打一个新的标签
git tag <new_tag_name> <old_tag_name>
 
# 删除旧标签
git tag -d <old_tag_name>
 
# 删除远程分支的旧标签
git push origin -d <old_tag_name>

# 把新分支推送到远端
git push --tags

2-4.查看标签

2-4-1.查看所有/筛选标签

# 列出本地所有标签
git tag

# 列出本地<v1.1.>开头的标签
git tag -l "v1.1.*" ==  git tag --list "v1.1.*"

2-4-2.查看标签提交信息

git show <tag_name>

2-4-2-1.查看轻量标签

git tag v1.0.0
commit f3d2540bdaf36e6b0092ccd0d3aa908c19f2f708 (HEAD -> master, tag: v1.0.0)
Author: user-name <xxxxx@xxx.com>
Date:   Tue Jul 11 23:15:27 2023 +0800

    add b.txt

diff --git a/b.txt b/b.txt
new file mode 100644
index 0000000..e69de29

2-4-2-2.查看附注标签

git show v1.0.1
tag v1.0.1
Tagger: user-name <xxxxx@xxx.com>
Date:   Tue Jul 11 23:17:09 2023 +0800

这是一个补丁

commit 5fb188686e12f43aedb91d0a562c1d908b10ddc6 (HEAD -> master, tag: v1.0.1)
Author: user-name <xxxxx@xxx.com>
Date:   Tue Jul 11 23:16:31 2023 +0800

    update b.txt

diff --git a/b.txt b/b.txt
index e69de29..e0b3f1b 100644
--- a/b.txt
+++ b/b.txt
@@ -0,0 +1 @@
+bb

2-4-3.查看标签注释

轻量标签只会显示commit-msg,附注标签就会显示标签标注信息

git tag -n
v1.0.0          add b.txt
v1.0.1          add b.txt
v2.0.0          升级了

2-5.创建分支

2-5-1.根据指定的标签切换出新的分支

git switch -c <branch_name> <tag_name>

git chekout -b <branch_name> <tag_name>

2-5-1.根据指定的标签切换出游离分支

git switch -d <tag_name>

git chekout <tag_name>

3.远程tag

3-1.标签推送到远程

git push不会把标签推送到远程仓库,必须手动更新

remote_name指代git remote -v所显示的name,默认的是origin

3-1-1.推送单个标签

git push origin v1.0.0:把指定标签v1.0.0推送到远程仓库上

git push <remote_name> <tag_name>

3-1-2.推送多个标签

git push origin --tags: 将所有不在远程仓库上的标签更新到远程仓库上

git push <remote_name> --tags

3-2.删除远程标签

⚠️不要随意删除远程仓库上的标签

以下两种都是删除远程指定标签

3-2-1.方式一

git push <remote_name> -d <tag_name>

git push <remote_name> --delete <tag_name>

3-2-2.方式二

git push <remote_name> :regs/tags/<tag_name>
posted @   lxd670  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示