git tag

这节我们讲下如何进行打标签

首先我们要切换到需要打标签的分支,比如我需要在master分支上打标签

$ git checkout master

然后直接用git tag <标签名>命令打一个新标签,标签名要用好记有意义的

$ git tag v1.0.0

我们可以使用git tag查看已经打好的标签,可以看到标签v1.0.0已经打成功了

$ git tag
v1.0.0

标签默认是打到了最新一次的commit上了,如果我们想针对以前的commit打标签,可以先查到以前那次提交的commit id,然后执行git tag <标签名> commit id就可以了

$ git log --pretty=oneline
5f49a8e1ae061d39cbac552ddf2ca4aa09daf35f (HEAD -> master, tag: v1.0.0) html变更
89883a845150ed6fe576a6bf519a810340d09952 在develop分支新增了一行div
81b4a4c2a728d049cdb3f28a9601ac8a5cb5743d fdg
baa2045564474789084f318af9eba9363ab44113 jjj
90dc19dd86cf60a1604e5d7d147ba149a15a0cb8 ttttt
f42e369bde1b19e256da3cc64473bf9ded50e66d 新增一行div
08bf08ab7a7c51af52804b89c7e26cb8d8a91073 初始化index文件

比如我们想给第一次提交打标签,通过git log可以看到第一次提交的commit id是08bf08ab7a7c51af52804b89c7e26cb8d8a91073,打标签时取commit id的前几位就行

$ git tag v0.0.0 08bf08ab7a7c

然后查看,发现已经打成功了,其中标签不是按时间顺序列出,而是按字母排序的

$ git tag
v0.0.0
v1.0.0

前边章节我们讲过git show 命令可以查看git的各种对象,现在我们通过git show查看标签的详细信息

$ git show v0.0.0
commit 08bf08ab7a7c51af52804b89c7e26cb8d8a91073 (tag: v0.0.0)
Author: weizhen <openness666@gmail.com>
Date:   Thu Aug 20 21:09:19 2020 +0800

    初始化index文件

diff --git a/index.html b/index.html
new file mode 100644
index 0000000..5339a95
--- /dev/null
+++ b/index.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <title>Git-师否</title>
+  </head>
+  <body>
+  </body>
+</html>

我们还可以在打标签时用-a 和-m 参数添加标签的描述信息

$ git tag -a v2.0.0 -m 我是2.0.0版本
$ git show v2.0.0
tag v2.0.0
Tagger: weizhen <openness666@gmail.com>
Date:   Sun Aug 23 16:09:51 2020 +0800

我是2.0版本

commit 5f49a8e1ae061d39cbac552ddf2ca4aa09daf35f (HEAD -> master, tag: v2.0.0, tag: v1.0.0)
Author: weizhen <openness666@gmail.com>
Date:   Sun Aug 23 14:58:50 2020 +0800

    html变更

diff --git a/index.html b/index.html
index 8a6a3be..2ec2097 100644
--- a/index.html
+++ b/index.html

默认情况下,git push 命令并不会传送标签到远程仓库服务器上,所以 在创建完标签后你必须显式地推送标签到远程仓库服务器上,执行命令 git push origin <tagname>

$ git push origin v1.0.0

如果想一次性推送很多标签,可以使用--tags选项,这会把所有不在远程仓库服务器上的标签全部推送到远程

$ git push origin --tags

当别人从仓库中克隆或拉取,也能得到你的打那些标签

如果标签打错了,可以执行git tag -d <标签名>删除本地标签

$ git tag -d v0.0.0 
已删除标签 'v0.0.0'(曾为 08bf08a)

如果标签已经推送到了远程仓库,除了删除本地标签外,还需要执行命令删除远程的标签

$ git push origin :refs/tags/v0.0.0

$ git push origin --delete v0.0.0

最后更新于

这有帮助吗?