一、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

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

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

总结

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