git学习(7)标签管理
1. 建立标签
在发布版本时候,我们通常会在版本库中打一个标签,这样就唯一确定了打标签的版本,有点像个里程碑,这里会有一个指向某个commit的指针
打标签很简单,首先切换到要打标签的分支上,然后使用命令git tag <name>
$ git branch* dev master $ git checkout masterSwitched to branch 'master'Your branch is up-to-date with 'origin/master'.$ git tag v0.9fengxideMac:gitstudy fengxi$ git tagv0.9
如果想打到指定提交commit id上怎么办呢,首先用git log
找到历史提交的commit id,然后打上就可以了,语法是git tag <name> <commit id>
$ git log --pretty=oneline --abbrev-commit9bf414a Merge branch 'currentBranch'f13d37a a new function finished76559b7 fix the readme ok832fb4f fix readme bug2a4d4ea confict fixed9f00674 & simple...$ git tag v0.8 76559b7$ git tagv0.8v0.9
标签是按字母进行排序的,而不是按时间列出,所以name需要确认正确,查看某一tag的详细信息可以通过git show <tag name>
2. 删除本地和远程标签
本地建立标签后如果想推送到远程标签,可以使用git push origin <tagname>
$ git push origin v0.8Total 0 (delta 0), reused 0 (delta 0)To git@github.com:keithmorning/gitstudy.git * [new tag] v0.8 -> v0.8
如果想把本地全部没有推送的标签都推送到远程可以使用 git push origin --tags
$ git tagv0.2v0.8v0.9$ git push origin --tagsTotal 0 (delta 0), reused 0 (delta 0)To git@github.com:keithmorning/gitstudy.git * [new tag] v0.2 -> v0.2 * [new tag] v0.9 -> v0.9
删除本地标签可以用git tag -d <tag name>
$ git tag -d v0.2Deleted tag 'v0.2' (was 57a2755)
远程的标签删除相对复杂一些可以用git push origin :refs/tags/<tagName>
$ git push origin :refs/tags/v0.2To git@github.com:keithmorning/gitstudy.git - [deleted] v0.2
删除后可以到gitHub的tags查看确认