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