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 <[email protected]>
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 <[email protected]>
Date: Tue Jul 11 23:17:09 2023 +0800
这是一个补丁
commit 5fb188686e12f43aedb91d0a562c1d908b10ddc6 (HEAD -> master, tag: v1.0.1)
Author: user-name <[email protected]>
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>
标签:git,标签,v1.0,tag,push,txt
From: https://www.cnblogs.com/lxd670/p/17546336.html