Git学习笔记(六)-标签管理

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

一、创建标签

(1)命令 git tag v1.0(标签名)

打一个新标签,在目前最新的版本上。

$ git tag v1.0

(2)命令 git tag

查看所有标签

$ git tag
v1.0

(3)命令 git tag commit_id

如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,可以使用找到需要打标签的commit_id,然后打标签。

abafad6 (HEAD -> master, tag: v1.0, origin/master) merged bug fix 101
91a4683 fix bug 101
f4961d3 merge with no-ff
0e13ee2 add merge
47e9b49 conflict fixed
6f306dd &simple
cd8fa2d AND simple
ea4444f branch text
53e89d7 remove test.txt
ed0dc67 add test.txt
e87225d git tracks changes 1
fe8a3cb git tracks changes
52edc0e understand how stage works
9178f48 append GPL
84cca88 add distributed
bdcbe49 wrote a readme file

比如要给add merge打标签,其对应的commit_id 是0e13ee2,则打标签的命令如下:

git tag v0.9 0e13ee2

查看标签历史,git tag可以看见

$ git tag
v0.9
v1.0

(4)命令git show

查看历史标签信息

li**@LAPTOP-MU**9V MI** ~/learngit (master)
$ git show v0.9
commit 0e13ee214fda9079dc00873b13594e822de43b7f (tag: v0.9)
Author: Li** <8507**[email protected]>
Date:   Wed Mar 8 16:28:27 2023 +0800

    add merge

diff --git a/readme.txt b/readme.txt
index 241c79a..5b67ce1 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,3 +1,4 @@
+Edit on dev branch.
 Git is a distributed version control system.
 Git is free software distributed under the GPL.
 Git has a mutable index called stage.

(5)命令git tag -a -m " "

创建带有说明的标签,用-a指定标签名,-m指定说明文字。

$ git tag -a v0.1 -m "version 0.1 released" 9178f48

查看标签记录

$ git show v0.1
tag v0.1
Tagger: Li** <8507**[email protected]>
Date:   Thu Mar 9 15:58:06 2023 +0800

version 0.1 released

commit 9178f48947263ebeb3535bb46ae14f570b3849f2 (tag: v0.1)
Author: Li** <8507**[email protected]>
Date:   Sat Mar 4 17:10:37 2023 +0800

    append GPL

diff --git a/readme.txt b/readme.txt
index 013b5bc..99e0e11 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
 Git is a distributed version control system.
-Git is free software.
\ No newline at end of file
+Git is free software distributed under the GPL.
\ No newline at end of file

创建标签总结:

命令git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit id;

注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。

二、操作标签

(1)命令git tag -d

删除标签,因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。

$ git tag -d v0.1
Deleted tag 'v0.1' (was d0c1eb0)

(2)命令git push origin

推送某个标签到远程。

$ git push origin v1.0
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:lily-wang0524/learngit.git
 * [new tag]         v1.0 -> v1.0

(3)命令git push origin --tags

一次性推送全部尚未推送到远程的本地标签

$ git push origin --tags
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:lily-wang0524/learngit.git
 * [new tag]         v0.9 -> v0.9

(4)删除远程标签git push origin :refs/tags/

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除,然后,从远程删除。

1)删除本地标签

$ git tag -d v0.9  #删除本地标签
Deleted tag 'v0.9' (was 0e13ee2)

2)删除远程标签

$ git push origin :refs/tags/v0.9  #删除远程标签v0.9
To github.com:li**-wa***/learngit.git
 - [deleted]         v0.9

看看是否真的从远程库删除了标签,可以登陆GitHub查看。可以看见v0.9已经被删除。

Git学习笔记(六)-标签管理_第1张图片

你可能感兴趣的:(Git,&,Github,git,学习)