标签的创建
1 |
$ git tag v0.1 |
在当前的HEAD创建标签v0.1。
也可以根据在某次提交上创建分支。
1 |
$ git tag v0.2 -m "version 0.2" 6944954 |
在编号为6944954的commit上创建标签v0.2,信息为version 0.2。
标签分为两种类型,轻量级(lightweight)标签,如v0.1;含附注(annotated)标签,如v0.2。轻量级标签就像是个不会变化的分支,实际上它就是个指向特定提交对象的引用。而含附注标签,实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,电子邮件地址和日期,以及标签说明,标签本身也允许使用GNU Privacy Guard(GPG)来签署或验证。一般建议使用含附注型的标签,以便保留相关信息;当然,如果只是临时性加注标签,或者不需要旁注额外信息,用轻量级标签也没问题。
推送提交以及标签
连同标签一起推送。
1 |
$ git push origin master --tags |
或者仅仅推送标签。
1 |
$ git push --tags |
标签的更新
执行git fetch
会获取所有的提交以及标签的更新。
仅仅获取标签的更新。
1 |
$ git fetch origin --tags |
查看远程仓库的标签
1 |
$ git ls-remote --tags |
注意:refs/tags/v0.2^{}
表示v0.2是含附注的标签。
另外,参数--tags
可以简化为-t
;--heads
会获取远程仓库的分支信息。如果没有任何参数,将获取所有的分支和标签信息。
删除远程标签
1 |
$ git push origin --delete tag v0.1 |
或
1 |
$ git push origin :refs/tags/v0.1 |
远程仓库的标签删除后,本地仓库无法通过命令获取到删除的信息,只能通过git ls-remote
获取到远程仓库的标签,与本地仓库的标签比对,手动执行git tag -d [标签名]
进行删除。
~~ EOF ~~