Git Tags

2025年3月17日 | 阅读 7 分钟

Git 标签在 Git 历史中标记了一个特定的点。标签用于标记一个提交阶段为相关。我们可以为将来的参考标记一个提交。主要用于标记项目的初始点,如 v1.1。

标签与分支很相似,一旦创建就不会改变。我们可以在一个分支或不同的分支上有任意数量的标签。下图展示了各种分支上的标签。

Git Tags

在上图中,一个分支有许多版本。所有这些版本都是存储库中的标签。

标签有两种类型。

  • 注解标签
  • 轻量级标签

这两种标签相似,但它们在存储的元数据量方面有所不同。

何时创建标签

  • 当您想为代码的稳定版本创建发布点时。
  • 当您想创建一个您可以参考并在将来重用的历史点时。

Git 创建标签

要创建标签,首先切换到您想创建标签的分支。要切换分支,请运行以下命令

现在,您已处于您所需的分支,例如 master。请看下面的输出

Git Tags

您可以使用 git tag 命令创建标签。用 v1.0、v1.1 或您想要的任何其他名称创建标签。要创建标签,请运行以下命令

语法

上述命令将标记项目的当前状态。请看下面的示例

Git Tags

上述命令将在 master 分支上创建一个标记点,名为 projectv1.0。

Git 列出标签

我们可以列出存储库中可用的标签。有三个选项可用于列出存储库中的标签。它们如下

  • git tag
  • git show
  • git tag -l ".*"

"git tag"

这是列出存储库中所有可用标签的最常用选项。它的用法如下

输出

Git Tags

从上面的输出可以看出,git tag 命令正在列出存储库中可用的标签。

git show <tagname>

这是一个用于显示特定标签详细信息的命令。它的用法如下

语法

上述命令将显示标签描述,请看下面的命令

输出

Git Tags

在上面的输出中,git show tag 显示了 projectv1.0 标签的描述,例如作者姓名和日期。

git tag -l ".*":

这也可以是一个特定的命令行工具。它使用通配符模式显示可用的标签。假设我们有十个标签,如 v1.0、v1.1、v1.2 到 v1.10。然后,我们可以使用标签模式 v 列出所有 v 开头的标签。它的用法如下

语法

上述命令将显示包含通配符的所有标签。请看下面的命令

输出

Git Tags

上述命令显示了以单词 pro 开头的标签列表。

Git 标签类型

Git 中有两种类型的标签。它们是

  • 注解标签
  • 轻量级标签

让我们详细了解这两种标签。

注解标签

注解标签是存储额外元数据(如开发者姓名、电子邮件、日期等)的标签。它们作为对象集合存储在 Git 数据库中。

如果您要标记并保存项目的最终版本,则建议创建注解标签。但如果您想创建一个临时标记点或不想共享信息,则可以创建轻量级标签。注解标签中提供的数据对于项目的公开发布至关重要。还有更多选项可用于注解,例如您可以添加一条消息来注解项目。

要创建注解标签,请运行以下命令

语法

上述命令将创建一个带有消息的标签。注解标签包含一些额外信息,如作者姓名和其他项目相关信息。请看下图

Git Tags

上述命令将在我项目的存储库的 master 分支上创建一个名为 projectv1.1 的注解标签。

当我们显示注解标签时,它会显示关于该标签的更多信息。请看下面的输出

Git Tags

轻量级标签

Git 支持另一种类型的标签;它被称为轻量级标签。这两种标签的目的都是标记存储库中的一个点。通常,它是一个存储在文件中的提交。它不存储不必要的信息,以保持其轻量级。轻量级标签不提供 -a、-s 或 -m 等命令行选项,只传递标签名称。

语法

上述命令将创建一个轻量级标签。请看下面的示例


Git Tags

给出的输出将创建一个名为 projectv1.0 的轻量级标签。

它将显示比注解标签更少的输出。请看下面的输出

Git Tags

Git 推送标签

我们可以将标签推送到远程服务器项目。这将帮助其他团队成员知道在哪里获取更新。它将在远程服务器帐户上显示为发布点。git push 命令提供了一些特定选项来推送标签。它们如下

  • git push origin <tagname>
  • git push origin --tags / git push --tags

"git push origin":

我们可以使用 git push 命令推送任何特定的标签。其用法如下

语法

上述命令将指定的标签名称作为发布点推送。请看下面的示例

我在本地存储库中创建了一些标签,我想将它们推送到我的 GitHub 帐户。然后,我需要执行上述命令。请看下图;这是我的远程存储库的当前状态。

Git Tags

上图显示发布点为 0 个发布。现在,执行上述命令。请看下面的输出

Git Tags

我已将 projectv1.0 标签推送到远程存储库。这将改变存储库的当前状态。请看下图

Git Tags

通过刷新存储库,它显示发布点为 1 个发布。我们可以通过点击它来查看此发布。它将显示为

Git Tags

我们可以将其下载为 zip 和 tar 文件。

git push origin --tags / git push --tags

给出的命令将一次推送所有可用的标签。它将创建与存储库中标签数量相同的发布点。其用法如下

语法

上述命令将从本地存储库将所有可用的标签推送到远程存储库。请看下面的输出

输出

Git Tags

标签已推送到远程服务器 origin,因此,发布点也已更新。请看存储库的快照

Git Tags

上面的输出中的发布点已根据标签更新。您可以看到发布已更新为 2 个发布。

Git 删除标签

Git 允许随时从存储库中删除标签。要删除标签,请运行以下命令

语法

上述命令将从本地存储库中删除指定的标签。假设我想删除我的 projectv1.0 标签,则过程如下

请看下面的输出

Git Tags

projectv1.0 标签已从存储库中删除。

删除远程标签

我们也可以从远程服务器中删除标签。要从远程服务器中删除标签,请运行以下命令

语法

上述命令将从远程服务器中删除指定的标签。请看下面的输出

Git Tags

projectv1.0 标签已从远程服务器 origin 中删除。

删除多个标签

我们可以仅用一条命令删除多个标签。要同时删除多个标签,请运行以下命令

语法

输出

上述命令将从本地存储库中删除这两个标签。

我们也可以从远程服务器中删除多个标签。要从服务器 origin 中删除标签,请运行以下命令

上述命令将从服务器中删除这两个标签。

Git 检出标签

Git 中没有实际的检出标签的概念。但是,我们可以通过从标签创建新分支来实现。要检出标签,请运行以下命令

语法

上述命令将创建一个新的分支,其存储库状态与标签相同。请看下面的输出

Git Tags

上述命令将创建一个新分支,并将存储库的状态转移到 new_branchv1.1,就像它在 projectv1.1 标签上一样。

从旧提交创建标签

如果您想回到历史记录并想在那一点创建一个标签。Git 允许您这样做。要从旧提交创建标签,请运行以下命令

在上述命令中,不需要给出全部 40 位数字;您可以只给出其中的一部分。

假设我想为我的旧提交创建一个标签,那么过程如下

检查旧提交

要检查旧提交,请运行 git status 命令。它的操作如下

考虑下面的输出

Git Tags

上面的输出显示了旧提交。假设我想为我的提交创建一个标签,以 828b9628 开头。复制该提交的特定引用。并将其作为参数传递到上述命令中。请看下面的输出

Git Tags

在上面的输出中,存储库的较早版本被标记为 oldversion。