二 『现学现忘』Git基础 — 37、标签tag

目录

  • 5、共享标签
  • 6、删除标签
  • 7、修改标签指定提交的代码
  • 8、标签在.git目录中的位置
  • 9、本文中所使用到的命令
提示:接上一篇文章内容 。
5、共享标签默认情况下,git push 命令并不会传送标签到远程仓库服务器上 。
在创建完标签后,你必须显式地(手动)推送标签到远程服务器上 。
需要将标签推送到远程版本库作为一个发行版本,可以通过以下两种方式:
(1)推送本地的指定标签
这个过程就像共享远程分支一样,你可以执行命令: git push origin <tagname>
$ git push origin v1.5Counting objects: 14, done.Delta compression using up to 8 threads.Compressing objects: 100% (12/12), done.Writing objects: 100% (14/14), 2.05 KiB | 0 bytes/s, done.Total 14 (delta 3), reused 0 (delta 0)To git@github.com:schacon/simplegit.git * [new tag]v1.5 -> v1.5(2)推送本地所有为推送的标签
如果想要一次性推送很多标签,也可以使用带有 --tags 选项的 git push 命令 。
这将会把所有不在远程仓库服务器上的标签全部推送过去 。
$ git push origin --tagsCounting objects: 1, done.Writing objects: 100% (1/1), 160 bytes | 0 bytes/s, done.Total 1 (delta 0), reused 0 (delta 0)To git@github.com:schacon/simplegit.git * [new tag]v1.4 -> v1.4 * [new tag]v1.4-lw -> v1.4-lw当然其他人从仓库中克隆或拉取,他们也能得到你的那些标签 。
说明:
  • git push 推送两种标签使用 git push <remote> --tags 命令(remote:远程仓库) 。
  • 推送标签并不会区分轻量标签和附注标签,没有选项能够让你只选择一种标签进行推送 。
(3)查看结果
登录GitHub并打开远程版本库页面,在release中可以查看推送到远程库中的标签,即发行版本 。
其他用户在更新本地版本库时,同时会将标签一并更新,然后可以在本地指定标签版本上,作一个新的分支进行开发,开发完成后再合并到主要分支上,最后将该分支删除 。
6、删除标签(1)删除本地标签
要删除掉本地仓库上的标签,可以使用命令 git tag -d <tagname>
例如,可以使用以下命令删除一个轻量标签:
$ git tag -d v1.4-lwDeleted tag 'v1.4-lw' (was e7d5add)注意上述命令并不会从任何远程仓库中移除这个标签 。
(2)删除远程标签
你必须用命令: git push <remote> :refs/shenghuo/tags/<tagname> 来更新你的远程仓库 。
提示:若要删除远程库中的标签,首先要删除本地库中的该标签,然后再运行上面的命令 。
第一种方式是 git push <remote远程库> :refs/shenghuo/tags/<tagname>
$ git push origin :refs/shenghuo/tags/v1.4-lwTo /git@github.com:schacon/simplegit.git - [deleted]v1.4-lw上面这种操作的含义是,将冒号前面的空值推送到远程标签名,从而高效地删除它 。
第二种更直观的删除远程标签的方式是:
$ git push origin远程库 --delete <tagname>7、修改标签指定提交的代码问题一:
软件版本一旦被指定,即标签一旦与某一commit-id绑定,那么这个版本(提交)的代码还能修改吗?