做网站是干什么的,求职网站建设,可以货代从哪些网站开发客户,免费站推广网站在线在 Git 中#xff0c;标签 tag 是指向某个 commit 的指针#xff08;所以创建和删除都很快#xff09;。Git 有 commit id 了#xff0c;为什么还要有 tag#xff1f;commit id 是一串无规律的数字#xff0c;不好记#xff1b;而 tag 是我们自定义的#xff0c;例如我…在 Git 中标签 tag 是指向某个 commit 的指针所以创建和删除都很快。Git 有 commit id 了为什么还要有 tagcommit id 是一串无规律的数字不好记而 tag 是我们自定义的例如我们可以命名为 v1.2
所以 tag 就是一个让人容易记住的有意义的名字它跟某个 commit 绑在一起。
创建标签
在 Git 中创建标签非常简单首先切换到要打标签的分支上
$ git checkout master
然后敲命令 git tag name 就可以打一个新标签
$ git tag v1.0
默认标签是打在最新提交的 commit 上的。如果想要打在某个 commit id 上指定 commit id 即可
$ git tag v0.9 1794212
可以用命令 git tag 查看所有标签
$ git tag
v0.9
v1.0
注意标签不是按时间顺序列出而是按字母排序的。可以用 git show tagname 查看标签信息
$ git show v0.9
commit 17942124f48557a93541974769ba1187321b8133 (tag: v0.9, bug)
Author: peterjxl peterjxlqq.com
Date: Sat Jan 14 20:06:01 2023 0800fix bugdiff --git a/3-branch/branch.txt b/3-branch/branch.txt
index b7edfda..42c8f36 100644
--- a/3-branch/branch.txtb/3-branch/branch.txt-1,3 1,3 Creating a new branch is quick and simpletest no fast forward
-test
test cherry-pick
还可以创建带有说明的标签用 -a 指定标签名-m 指定说明文字
$ git tag -a v0.1 -m version 0.1 released 1094adb
再次用 git show tagname可以看到说明文字
$ git show v0.1
tag v0.1
Tagger: peterjxl peterjxlqq.com
Date: Sat Jan 14 20:50:31 2023 0800version 0.1 releasedcommit abf2051bd989d0b129066bff3700a019665469ce (tag: v0.1)
Author: peterjxl peterjxlqq.com
Date: Wed Jan 11 22:50:39 2023 0800add diff and patch hello.txtdiff --git a/1-diffAndPath/hello.txt b/1-diffAndPath/hello.txt
new file mode 100644
index 0000000..9bef518
--- /dev/nullb/1-diffAndPath/hello.txt-0,0 1,2
This is hello file
Welcome to diff
之前说的第一种是轻量标签lightweight第二种带说明的就是附注标签annotated。
轻量标签很像一个不会改变的分支——它只是某个特定提交的引用。
而附注标签是存储在 Git 数据库中的一个完整对象 它们是可以被校验的其中包含打标签者的名字、电子邮件地址、日期时间 此外还有一个标签信息并且可以使用 GNU Privacy Guard GPG签名并验证。 通常会建议创建附注标签这样你可以拥有以上所有信息。但是如果你只是想用一个临时的标签 或者因为某些原因不想要保存这些信息那么也可以用轻量标签。
标签总是和某个 commit 挂钩。如果这个 commit 既出现在 master 分支又出现在 dev 分支那么在这两个分支上都可以看到这个标签。
删除标签
如果标签打错了也可以删除
$ git tag -d v0.1
Deleted tag v0.1 (was 361b94d)因为创建的标签都只存储在本地不会自动推送到远程。所以打错的标签可以在本地安全删除。
推送标签
如果要推送某个标签到远程使用命令 git push origin tagname
$ git push gitee v1.0
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To gitee.com:peterjxl/LearnGit.git* [new tag] v1.0 - v1.0
或者一次性推送全部尚未推送到远程的本地标签
$ git push gitee --tags
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To gitee.com:peterjxl/LearnGit.git* [new tag] v0.9 - v0.9
如果标签已经推送到远程要删除远程标签就麻烦一点先从本地删除
$ git tag -d v0.9
然后从远程删除。删除命令也是 push但是格式如下
$ git push origin :refs/tags/v0.9
第二种更直观的删除远程标签的方式是
$ git push origin --delete tagname
要看看是否真的从远程库删除了标签可以登录远程仓库查看。
查找标签
你也可以按照特定的模式查找标签。 例如Git 自身的源代码仓库包含标签的数量超过 500 个。 如果只对 1.8.5 系列感兴趣可以运行
$ git tag -l v1.8.5*
v1.8.5
v1.8.5-rc0
v1.8.5-rc1
v1.8.5-rc2
v1.8.5-rc3
v1.8.5.1
v1.8.5.2
v1.8.5.3
v1.8.5.4
v1.8.5.5
小结
常用的 git tag 命令如下
git tag tagName 创建标签git tag 创建标签命令 git push origin tagname 可以推送一个本地标签命令 git push origin --tags 可以推送全部未推送过的本地标签命令 git tag -d tagname 可以删除一个本地标签命令 git push origin :refs/tags/tagname 可以删除一个远程标签。