通过学习分支管理我们知道了master分支一般用于正式版本的发布,但是正式的版本也不可能一尘不变,随着时间的推移,会做出各种更新操作,正式版本的数量也会随之增多,像我们经常会见到某个软件的release 1.0,release 2.0等等,但是master分支只会保存最新版本的状态,如果我们想要获取之前的版本怎么办呢?有人说这还不简单,通过分支的提交记录呀,不错,通过提交记录确实可以做到,但是你确定你的用户懂Git吗,知道怎么操作吗,即使使用的人懂Git,但是你确定他知道哪些提交对应哪个版本吗,不管怎么说想要下载不同版本的程序靠master的提交记录绝对不是一个好的办法,那该怎么办呢?其实Git早就为我们想好了,它提供的标签功能正好用于多版本的管理。
什么是标签?
百科中标签的定义是标志产品目标,便于自己和他人查找和定位目标的工具。标签在Git中的作用同样如此,在Git中通常是为某个时间点上的版本打上标签,是不是跟我们到某一个时刻建立一个分支很像,当然两者还是有区别的,分支可以继续增加提交,但是标签却不能,可以把标签看做是不会变化的分支。
创建标签
为当前提交打标签,git tag为固定用法,v1.0为标签名称
git tag v1.0
如果有些提交忘记了打标签,没关系,我们通过git log找到对应commit id,仍然可以为其打标签。
git tag v1.0 commit_id
想要为本次打标签做个说明,只需要加个-a和-m参数即可。
git tag -a v1.0 -m "tag message"
查看标签
查看现在已经创建了多少标签
git tag
查看某类标签,例如查看v0开头的标签
git tag -l v0*
删除标签
git tag -d v1.0
远程标签
推送单个标签到远程仓库
git push osc-git v1.0
推送所有标签到远程仓库
git push osc-git --tags
删除远程标签
git push osc-git :refs/tags/v1.0
或者
git push osc-git --delete v1.0