Git 标签管理(创建标签、操作标签)
【什么是标签】
通常,发布一个版本时,会在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。
简单理解:标签是某个版本的别名,因为Git的版本号都是用一串字母数字组成,为了便于管理,Git 可以给版本取个别名(也就是打上标签,比如标签的名字叫做 v1.0.0)。
【创建标签】
首先,切换到需要打标签的版本,然后输入 git tag <name> 就可以打上一个标签。另外,可以用 git tag 查看所有标签:
默认标签是打在最新提交的commit上的。但是,如果需要对过去的提交的版本打上标签,怎么操作?
方法是找到历史提交的commit id(命令:git log --pretty=oneline --abbrev-commit),然后打上就可以了:
比方说要对“merged bug fix 1001”这次提交打标签,它对应的commit id是6a691d8,
输入命令:git tag v0.5.0 6a691d8,
再用git tag 查看标签。
注意,标签不是按时间顺序列出,而是按字母排序的。可以用 git show <tagname> 查看标签信息。
还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:
【删除标签】
如果标签打错了,也可以删除,使用命令 git tag -d <tagname>
因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。
【推送标签至远程】
如果要推送某个标签到远程,使用命令 git push origin <tagname>:
或者,一次性推送全部尚未推送到远程的本地标签(命令:git push origin --tags)
【删除远程标签】
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除(命令:git tag -d v1.0.0),然后再从远程删除(命令:git push origin :refs/tags/<tagname>)
【小结】
命令 git tag <tagname> 用于新建一个标签,默认为HEAD,也可以指定一个commit id;
命令 git tag -a <tagname> -m "this is memeo" 可以指定标签信息;
命令 git tag 可以查看所有标签。
命令 git log --pretty=oneline --abbrev-commit 找到历史提交的commit id
命令 git tag -d <tagname> 删除标签
命令 git push origin :refs/tags/<tagname> 可以删除一个远程标签。