GitHub-标签管理

时间:2022-07-26
本文章向大家介绍GitHub-标签管理,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

参考博文:廖雪峰Git教程

1. 创建标签

切换到需要打标签的分支上,之后打标签

1 [root@mini05 zhangtest]# git branch
2   dev
3 * master
4 [root@mini05 zhangtest]# git tag v1.0

查看所有标签

1 [root@mini05 zhangtest]# git tag 
2 v1.0

默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?

方法是找到历史提交的commit id,然后打上就可以了:

 1 [root@mini05 zhangtest]# git log --pretty=oneline --abbrev-commit
 2 31230a8 feature2
 3 56c6e0c conflict fixed
 4 41de15c ma commit
 5 75b1490 RE new line
 6 068d030 add test.info
 7 c752e64 add info
 8 3b7db1c add aaa.txt
 9 c795cfc del aaa.txt
10 6d0226b add aaa.txt
11 b293c46 git tracks changes
12 53f0f2e understand how stage works
13 65a58f2 add info
14 d4fb57e Update README.md
15 e730676 Initial commit

比方说要对add info这次提交打标签,它对应的commit id是65a58f2,敲入命令:

1 [root@mini05 zhangtest]# git tag v0.9 65a58f2
2 [root@mini05 zhangtest]# git tag 
3 v0.9
4 v1.0

注意,标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>查看标签信息:

1 [root@mini05 zhangtest]# git show v0.9
2 commit 65a58f2661c4d73dc0dc9c2e5bff4c350c42c98e
3 Author: Zhang San <zhanglianghhh@163.com>
4 Date:   Mon Sep 17 23:31:25 2018 +0800
5 
6     add info
7 ………………

还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:

 1 [root@mini05 zhangtest]# git tag -a v0.1 -m "version 0.1 released" d4fb57e  # 推荐使用
 2 [root@mini05 zhangtest]# git show v0.1
 3 tag v0.1
 4 Tagger: Zhang San <zhanglianghhh@163.com>
 5 Date:   Mon Oct 1 18:22:14 2018 +0800
 6 
 7 version 0.1 released
 8 
 9 commit d4fb57e8a892060db07fe862058a1a8477be49aa
10 Author: 张亮 <zhanglianghhh@163.com>
11 Date:   Mon Sep 17 23:10:57 2018 +0800
12 
13     Update README.md
14 ………………

2. 操作标签

如何删除标签

1 [root@mini05 zhangtest]# git tag 
2 v0.1
3 v0.9
4 v1.0
5 [root@mini05 zhangtest]# git tag -d v0.1
6 Deleted tag 'v0.1' (was 5757f83)

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

如果要推送某个标签到远程,使用命令git push origin <tagname>

1 [root@mini05 zhangtest]# git push origin v1.0  # 推送指定标签
2 Total 13 (delta 9), reused 0 (delta 0)
3 To git@github.com:zhanglianghhh/zhangtest.git
4  * [new tag]         v1.0 -> v1.0

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

1 [root@mini05 zhangtest]# git push origin --tags  # 全部推送
2 Total 0 (delta 0), reused 0 (delta 0)
3 To git@github.com:zhanglianghhh/zhangtest.git
4  * [new tag]         v0.9 -> v0.9

2.1. 删除远程标签

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

1 [root@mini05 zhangtest]# git tag -d v0.9
2 Deleted tag 'v0.9' (was 65a58f2)

然后,从远程删除。删除命令也是push,但是格式如下:

1 [root@mini05 zhangtest]# git push origin :refs/tags/v0.9
2 To git@github.com:zhanglianghhh/zhangtest.git
3  - [deleted]         v0.9

  要看看是否真的从远程库删除了标签,可以登陆GitHub查看。