一、创建标签
在git中打标签,需要先切换到要打标签的分支上,我们就打在master分支上好了:
图片.png
然后,敲命令git tag <name>就可以打一个新标签:
图片.png
可以用命令git tag查看所有标签:
图片.png
注意,这样直接敲出标签的名称给标签命名的话,是默认标签直接打在最新的commit上的;那如果我想打在之前提交的commit上面,怎么操作?
方法就是找到历史提交的commit id,然后打标签的时候,把commit也给输入上去,就可以了。
先来看找到历史的commit id:
图片.png
这些就是历史提交的commit,标红框的就是历史提交的commit的commit id。
比如要对add merge这次提价的打标签,它对应的commit id就是1a50c3e,那么我们敲打印标签的命令:
图片.png
现在用命令git tag查看已有的标签:
图片.png
可以看到已经出现了。这就是如果想给历史的提交打标签,那么我们得先查看一下历史提交的commit id,然后打标签的时候,命名的名字和commit id都得带上,这样才能给历史提交的打上标签。
用git show <tagname>可以查看标签信息:
图片.png
还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字,比如我们创建一个标签,用对应的历史commit id是b14e40a来举个例子:
图片.png
用命令git show <tagname>看下,可以看到说明的文字:
图片.png
注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。
小结
命令git tag <tagname>用于新建一个标签,默认为HEAD(也就是最新提交的commit),也可以指定一个commit id;
命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;
命令git tag可以查看所有标签。
二、操作标签
如果不想要标签了,或者标签打错了等等以至于不想要标签了,可以删除标签:
图片.png
这样就把标签给删除了。
因为打印的标签都是只保存在本地,没有推送到远程,所以只需有删除本地的操作就可以了。
当然也可以推送标签到远程,如果要推送某个标签到远程,使用命令git push origin <tagname>:
图片.png
或者,一次性推送尚未推送到远程的所有本地标签:
图片.png
因为上节中,我们就创建了三个标签,现在删除了一个,有一个已经推送到远程了(v1.0),现在推送的全部标签也就只剩下v0.9了。
当然,如果我们把标签推送到了远程,也一定会有删除了办法。
推送到远程删除的话,先删除本地的标签:
图片.png
然后,从远程删除。删除命令也是push,但是格式如下:
图片.png
小结
命令git push origin <tagname>可以推送一个本地标签;
命令git push origin --tags可以推送全部未推送过的本地标签;
命令git tag -d <tagname>可以删除一个本地标签;
命令git push origin :refs/tags/<tagname>可以删除一个远程标签。
网友评论