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 标签稍有不同,这时需要非常谨慎。

git
本作品采用《CC 协议》,转载必须注明作者和本文链接
不要试图用百米冲刺的方法完成马拉松比赛。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!