Git 标签
列出标签
$ git tag
列出特定版本标签
$ git tag -l 'v1*'
创建标签
附注标签 tag -a
附注标签(annotated)
$ git tag -a v2.56 -m "version 2.56" # -m 选定标签
$ git show v2.56 # show 查看标签详细信息,里面有对应的提交附注信息
轻量标签
轻量标签(lightweight)
$ git tag v2.6-full # 不需要使用 -a、-s、-m 选项
$ git show # 现在的 show 只能看到提出信息,看不到额外的标签信息
补标签
$ git log --pretty=oneline # 查看提交历史
15027957951b64cf874c3557a0f3547bd83b3ff6 Merge branch 'experiment'
2b19ed90da10f72c7fbb0b9279d7cc897091bdf5 updated rakefile # 在这里或在 v0.2 忘记打标签
在命令末尾指定提交的校验和(或部分校验和):
$ git tag -a v0.2 2b19ed
这时候可以用 git tag
看到那次提交上打上标签了。
共享标签
默认情况下,git push
命令并不会传送标签到远程仓库服务器上,在创建完标签后必须显式的推送标签到共享服务器上。
可以运行 git push origin [tagname]
。
$ git push origin v1.6
如果想要一次性推送很多标签,可以使用带有 --tag
选项的 git push
命令,这会把所有不在远程仓库服务器上的标签全部传送到远程仓库里。
$ git push origin --tags
删除标签
要删除本地仓库标签,可以使用命令 git tag -d <tagname>
$ git tag -d v1.2-lw # 删除一个轻量级标签
Deleted tag 'v1.2-lw' (was e7d5add)
删除本地仓库标签并不会从任何远程仓库中移除这个标签
必须使用 git push <remote> :refs/tags/<tagname>
来更新远程仓库:
$ git push origin :refs/tags/v1.2-lw
To /git@github.com:schacon/learngit.git
- [deleted] v1.2-lw
标出标签
查看某个标签所指向的文件版本,可以使用 git checkout
命令,虽然说这会让仓库处于 “分离头指针(detacthed HEAD)”状态。
$ git checkout 2.0.0
Note: checking out '2.0.0'.
.
.
.
在 “detacthed HEAD” 状态下,如果做了某些更改然后提交它们,标签不会发生变化,这个新提交将不属于任何分支,并且无法访问,除非确切的提交哈希。
因此,如果需要进行更改。比如修复旧版本的错误(这通常需要创建一个新分支):
$ git checkout -b version2 v2.0.0
Switched to a new branch 'version2'
如果在这之后又进行了一次提交,version2
分支会因为这个改动向前移动,version2
分支就会和 v2.0.0
标签稍有不同,这时需要非常谨慎。
本作品采用《CC 协议》,转载必须注明作者和本文链接