目录
- 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
当然其他人从仓库中克隆或拉取 , 他们也能得到你的那些标签 。说明:(3)查看结果
git push
推送两种标签使用git push <remote> --tags
命令(remote
:远程仓库) 。- 推送标签并不会区分轻量标签和附注标签,没有选项能够让你只选择一种标签进行推送 。
登录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/tags/<tagname>
来更新你的远程仓库 。提示:若要删除远程库中的标签,首先要删除本地库中的该标签,然后再运行上面的命令 。第一种方式是
git push <remote远程库> :refs/tags/<tagname>
:$ git push origin :refs/tags/v1.4-lwTo /git@github.com:schacon/simplegit.git - [deleted]v1.4-lw
上面这种操作的含义是,将冒号前面的空值推送到远程标签名,从而高效地删除它 。第二种更直观的删除远程标签的方式是:
$ git push origin远程库 --delete <tagname>
7、修改标签指定提交的代码问题一:软件版本一旦被指定 , 即标签一旦与某一
commit-id
绑定,那么这个版本(提交)的代码还能修改吗?- 若将
master
分支回退到该commit-id
,然后再修改代码,修改完成后再提交 , 我们会发现该提交代码修改过了,但该标签绑定的commit-id
并没有发生变化,即该软件版本(标签)指向的代码仍未修改 。(也就是标签指向的提交没有改变) - 当然,此时我们可以将该标签删除 , 然后再定义一个同名标签,与修改过代码的提交进行绑定,这样也是可以的 。
但是如上操作存在一个巨大的风险,我们修改过的代码是
master
主分支上的 , 一旦修改过的代码出现问题,将可以导致整个代码出问题 。所以,我们一般不会修改master
主分支上的代码 。那应该怎么办?- Git将标签定义为与分支同级别的概念,它不仅是一个提交的别名 。
- Git允许程序员使用分支切换命令
git checkout
,将代码转向标签所指定的版本 。
# 1.查看当前版本库分支L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git tagv1.0v2.0# 2.切换到v1.0标签上L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learning_github (master)$ git checkout v1.0Note: switching to 'v1.0'.You are in 'detached HEAD' state. You can look around, make experimentalchanges and commit them, and you can discard any commits you make in thisstate without impacting any branches by switching back to a branch.If you want to create a new branch to retain commits you create, you maydo so (now or later) by using -c with the switch command. Example:git switch -c <new-branch-name>Or undo this operation with:git switch -Turn off this advice by setting config variable advice.detachedHead to falseHEAD is now at 69fc420 第二次提交,添加v2版内容L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learning_github ((v1.0))$
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 一 『现学现忘』Git基础 — 36、标签tag
- 『现学现忘』Git基础 — 35、Git中删除文件
- 上海二手奢侈品店探店笔记,我的大牌日记 大牌包一直是我的心头爱
- 二 测试杂谈——一条SQL引发的思考
- 『现学现忘』Git后悔药 — 34、git commit --amend 命令
- 原神3.1百人一揆第二天人间之证明怎么用试用角色拿2000分
- 明日方舟铅踝精二专三材料需求要哪些
- 2021年二月份的天气预报_2021年二月份天气怎么样
- Morris 遍历实现二叉树的遍历
- 二 『现学现忘』Git后悔药 — 33、revert撤销