标签
标签是发布一个版本时,向版本库中打上的标记(相当于版本库的快照);标签可以随时获取对应的版本。
标签是指向某个 commit 的指针,和分支类似(分支可以移动,标签不能移动)。commit 号过于长且复杂,标签可以很方便找到对应的版本。
创建标签
-
执行 git tag < name> 命令打新标签(默认标签打在最新提交的 commit 上):
$ git tag v1.0
-
执行 git tag < name> commitid 命令向某个版本打标签:
$ git tag v0.9 f52c633
-
执行 git tag 命令查看所有标签:
$ git tag v1.0 v0.9
-
执行 git show < tagname> 命令标签信息;标签v0.9 打在 f52c633 上:
$ git show v0.9 commit f52c63349bc3c1593499807e5c8e972b82c8f286 (tag: v0.9) Author: Michael Liao <askxuefeng@gmail.com> Date: Fri May 18 21:56:54 2018 +0800 add merge diff --git a/readme.txt b/readme.txt ...
-
执行 git tag 命令,用 -a 指定标签名,-m 执行说明文字:
$ git tag -a v0.1 -m "version 0.1 released" 1094adb
再执行 git show < tagname> 命令查看,可以看到说明文字:
$ git show v0.1 tag v0.1 Tagger: Michael Liao <askxuefeng@gmail.com> Date: Fri May 18 22:48:43 2018 +0800 version 0.1 released commit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (tag: v0.1) Author: Michael Liao <askxuefeng@gmail.com> Date: Fri May 18 21:06:15 2018 +0800 append GPL diff --git a/readme.txt b/readme.txt ...
操作标签
-
执行 git tag -d < tagname> 命令删除标签:
$ git tag -d v0.1 Deleted tag 'v0.1' (was f15b0dd)
当标签推送到远程需要删除时,步骤如下:
-
先删除本地标签:
$ git tag -d v0.9 Deleted tag 'v0.9' (was f52c633)
-
再删除远程标签:
$ git push origin :refs/tags/v0.9 To github.com:michaelliao/learngit.git - [deleted] v0.9
-
-
执行 git push origin < tagname> 命令推送某个标签到远程(创建的标签只能存储在本地,不会自动推送到远程):
$ git push origin v1.0 Total 0 (delta 0), reused 0 (delta 0) To github.com:michaelliao/learngit.git * [new tag] v1.0 -> v1.0
执行 git push origin --tags 命令全部推送:
$ git push origin --tags Total 0 (delta 0), reused 0 (delta 0) To github.com:michaelliao/learngit.git * [new tag] v0.9 -> v0.9