Git 标签 Git 中标记发布的教程

2025-06-07

Git 标签Git 中标记发布的教程

标签是 Git 的一个基本功能,它允许您识别代码的特定发布版本。您可以将标签视为一个不会更改的分支。一旦创建,它就失去了更改提交历史记录的能力。

两种类型的 Git 标签

Git 中有两种类型的标签带注释的标签轻量级标签。它们都允许您引用存储库中的特定提交,但它们可以存储的元数据量有所不同。

带注释的标签

带注释的标签会将额外的元数据(例如作者姓名、发行说明、标签消息和日期)以完整对象的形式存储在 Git 数据库中。所有这些数据对于项目的公开发布都至关重要。

标签还可以包含更具描述性的标记消息注释,就像合并时的提交消息一样。通常,这是通过使用(-a用于注释)来实现的:

$ git tag -a v1.0.0

执行此命令后,您将创建一个新的带注释的标签,其版本号为 v1.0.0。该命令随后会打开您的提交编辑器,以便您填写元数据。

如果您想添加标签消息,您可以传递-m选项,这是一种类似于的方法git commit -m

$ git tag -a v1.0.0 -m "Releasing version v1.0.0"

轻量级标签

轻量级标签是向 Git 仓库添加标签最简单的方法,因为它们只存储所引用提交的哈希值。创建轻量级标签时无需使用 -a、-s 或 -m 选项,并且包含任何额外信息。

轻量级标签本质上是提交的“书签”,它们只是一个提交的名称和指向提交的指针,可用于创建指向相关提交的快速链接。来自 Bitbucket 教程

要创建新的轻量级标签,请执行以下命令:

$ git tag v1.0.0

附加命令

列出标签-git tag
每当您想要列出所有现有标签时,请使用 命令,或者您可以使用 过滤列表git tag -l 'v1.1.*',其中*充当通配符它将返回标有 的标签列表v1.1

您会注意到,当您调用时,git tag您看不到注释的内容。要预览它们,您必须-n在命令中添加:git tag -n3

$ git tag -l -n3
v1.0            Release version 1.0
v1.1            Release version 1.1
v1.2            Release version 1.2

该命令列出所有现有标签,标签信息最多包含 3 行。默认情况下,-n仅显示第一行。

标签详细信息-git show <tag_identifier>
此命令向您显示标签详细信息已标记的提交的信息。

$ git show v1.0
tag v1.0
Tagger: Kolosek 
Date:   Fri May 11 10:45:33 2018 +0100

Release version 1.0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iMTvhAA...
-----END PGP SIGNATURE-----

commit 7d44b6bb8abb96dee33f32610f56441496d77e8a
Author: Kolosek 
Date:   Fri May 11 9:50:13 2018 +0100

    Edited the Login form
...

它会打印作者姓名、创建日期、信息、GnuPG 签名(如果有)以及引用提交的信息。如果标签是轻量级的,则输出将仅限于引用提交的信息。

编辑标签-git tag -a -f <tag_identifier> <commit_id>
如果您尝试创建与现有标签具有相同标识符的标签,Git 将抛出错误:fatal: tag 'v1.0' already exists

您无需删除标签并重新添加,只需在保留现有描述的情况下替换它即可。在提交历史记录中选择<commit_id>要将标签移动到的位置,然后将-f或添加-force到命令中。

当您“强制”进行此类更改时,请务必提醒您的团队成员。如果他们仍然持有该标签的“旧”版本,则在尝试推送到服务器时可能会引发冲突!

如果您已经将标签推送到服务器并想要修复该问题,请首先确保您的本地标签版本正确,然后再运行以下命令git push origin -f --tags

删除标签-git tag -d <tag_identifier>
通常,没有理由删除标签,因为它们价格低廉并且不使用任何资源,除非您错误地创建了指向错误提交的标签。

如果标签已被推送,则需要将其从远程存储库中删除,请运行:$ git push origin :v1.0

发布标签-git push <location> <tag_identifier>
标签只是对本地仓库的引用,它不会自动与其余代码一起推送到远程仓库git push。您可以单独发布标签,也可以运行git push --tags以下命令一次性推送所有标签。操作方法与推送分支类似:

$ git push origin v1.0

标签排序-git tag --sort=<type>
当查看包含大量标签的项目时,使用排序选项会非常方便。支持的类型包括:

  • refname(按字典顺序排序),
  • version:refnamev:refname(此处标签名称被视为版本)。
git tag -l --sort=-version:refname "v*"

这里我列出了所有以“v”开头的标签及其版本。


git tag和社交媒体里的#tag不是一样吗?不过它有自己的用法。它可以帮你返回并列出所有之前的发布版本!

在您访问期间,请注意,Kolosek 始终乐意为您提供帮助,将您的想法变为现实。如果您需要帮助,可以随时通过社交媒体联系 Kolosek。或许可以用 Twitter

本文最初发表于Kolosek Blog

文章来源:https://dev.to/neshaz/a-tutorial-for-tagging-releases-in-git-147e
PREV
使用 Git 进行调试
NEXT
JavaScript 系列 – 什么是 JavaScript? – 第一部分