git tag 命令
注意所显示的结果(只需注意 SHA 和 commit 消息)
我们将使用 git tag 命令与仓库的标签进行交互:
$ git tag -a v1.0
上述命令将打开代码编辑器,并等待你为标签输入信息。输入"Ready for content"怎么样?
注意:在上述命令 (git tag -a v1.0) 中,使用了 -a 选项。该选项告诉 git创建一个带注释的标签。如果你没有提供该选项(即 git tag v1.0),那么它将创建一个轻量级标签。
建议使用带注释的标签,因为它们包含了大量的额外信息,例如:
- 标签创建者
- 标签创建日期
- 标签消息
因此,你应该始终使用带注释的标签。
验证标签
保存并退出编辑器后,命令行上什么也不会显示。那么如何知道已经向项目中添加了标签呢?只需输入 git tag,命令行会显示仓库中的所有标签。
我们已经验证了该标签位于仓库中,但是我们想知道它位于仓库的哪个位置。为此,我们需要调用一直在使用的 git log
git log 的 --decorate 选项
正如你所了解的,git log 是一个非常强大的工具,可以让我们查看仓库的 commit。我们已经学习了几个选项,现在该学习一个新的选项了。--decorate 选项将显示默认视图隐藏起来的一些详情。
标签信息位于第一行的末尾:
commit 6fa5f34790808d9f4dccd0fa8fdbc40760102d6e (HEAD -> master, tag: v1.0)
看见输出结果显示的 tag: v1.0 了吗?这就是标签!标签与 commit 相绑定。因此,该标签与 commit 的 SHA 位于同一行.
删除标签
如果将标签消息中的某个字打错了,或标签名称打错了(输入 v0.1,而不是 v1.0),如何修正这个错误?最简单的方法是删除这个标签并重新创建。
可以通过输入 -d 选项 (表示 delete 删除!)加上标签名称来删除 git 标签:
$ git tag -d v1.0
向以前的 commit 添加标签
运行 git tag -a v1.0 将为最近的 commit 添加标签。但是如果你想向仓库中很久之前的 Commit 添加标签呢?
只需提供要添加标签的 commit 的 SHA 即可!
$ git tag -a v1.0 a87984
(在弹出代码编辑器以便让你提供标签消息之后)此命令将向 SHA 为 a87084 的 commit 添加标签 v1.0。借助这一技巧,你可以为整个 git 仓库中的任何 commit 添加标签!很强大吧?并且只需在你已经知道的 git 标签命令中加上 commit 的 SHA 即可。
git tag 小结
总结下,git tag 命令用来标记特定的 commit 。当添加新的 commit 时,标签不会移动。
$ git tag -a beta
此命令将:
- 向最近的 commit 添加标签
- 如果提供了 SHA,则向具体的 commit 添加标签