git tag

一、git tag 的语法

  • git tag < tag name > :创建一个轻量级的 tag。所谓轻量级,就是创建该 tag,并不会生成 git obj 对象。
  • git tag -a < tag name > -m < tag message > 以及 git tag -a < tag name > < commit SHA1 value >:创建一个带有注释信息以及相关元数据的 tag,该 tag 会创建相应的 git obj 对象。

在这里插入图片描述


二、演示

1.轻量级 tag

  • 在当前版本库上,只有一个 commit。

在这里插入图片描述

  • 由于只有 1 个 commit ,所以当前只有 3 个 git obj 对象: commit / blob / tree。
  • 并且 tags 目录下是空的。

在这里插入图片描述

  • 此时创建一个轻量级的 tag。

在这里插入图片描述

  • 可以看到,此时 tag 指向的 SHA1 哈希值,就是当前工作分支上的最新的一次 commit 哈希值。

在这里插入图片描述

  • 轻量级的 tag 删除后,仅仅删除了 tag 目录下保存 commit 指针的文件。

在这里插入图片描述

2.创建带有元数据的 tag

  • 创建一个新的 tag。

在这里插入图片描述

  • 该 tag 将会生成 1 个 tag 对象,并指向当前工作分支最近的 commit。

在这里插入图片描述

  • 删除该 tag ,并不会删除 tag 对象,但是 tag 保存指针的文件被删除了。

在这里插入图片描述

3. 基于特定的 commit 创建 tag

  • 基于特定的 commit 创建 tag

List item

  • 可以看到,该 tag 也会创建对应的 git obj 对象。

在这里插入图片描述

  • 删除该 tag 之后,依然会有垃圾对象存在,只是 refs/tags 目录下的文件被删除了。

在这里插入图片描述


总结

在这里插入图片描述


版权声明:本文为weixin_42109053原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。