定义
发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。
Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。
操作
- 列出所有标签
git tag
- 添加标签(同时生成独立的版本库)
添加标签十分简单,切换到需要打上标签的分支上然后git tag <name>即可,默认标签是打在最新提交的commit上的。但如果想给特定的commit打上标签也可以利用commit的id
给当前commit打标签
git tag -a v0.0.1 -m '第一次添加标签'
给指定的commit打标签,需要commit的head
git tag -a v0.0.1 0ed1dd07d324cb5aece243a95312187955619fcf
- 不加 -a 参数相当于是一个commit的引用
- 用-a指定标签名,-m指定说明文字,用命令git show <tagname>可以看到说明文字
- 将标签推送到远程库
推送本地所有标签
git push origin --tags
推送指定标签
git push origin v0.0.1
- 跳转到指定标签
git checkout v0.0.1
和跳转到branch操作一样,但是因为是独立的版本库上,你在独立标签中的git branch和在主线中包含的branch显示的是不同的,独立版本库和分支的性质是不一样的
- 删除指定标签
git tag -d v0.0.1
- 删除远程分支的标签
git push origin -d tag <tagname>