程序员社区

Git系列教程 --- 26、Git Tags

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

标签很像分支,一旦启动就不会改变。我们可以在一个分支或不同的分支上拥有任意数量的标签。下图展示了各个分支上的标签。

file

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

有两种类型的标签。

  • 带注释的标签
  • 轻量标签

这两个标签很相似,但在元数据存储量的情况下它们是不同的。

何时创建标签:

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

Git 创建标签

要首先创建标签,请签出要创建标签的分支。要检查分支,请运行以下命令:

$ git checkout <Branch name>  

现在,你在你想要的分支上,比如 master。考虑以下输出:

file

您可以使用 git tag 命令创建标签。创建一个带有一些名称的标签,例如v1.0、v1.1或任何您想要的任何其他名称。要创建标签,请按如下方式运行命令:

句法:

$ git tag <tag name>  

上面的命令将标记项目的当前状态。考虑下面的例子:

$ git tag projectv1.0  

file

上面的命令将在 master 分支上创建一个标记点为projectv1.0

Git 列表标签

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

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

“git tag”:

这是列出存储库中所有可用标签的最常用选项。它被用作:

$ git tag  

输出:

file

从上面的输出中我们可以看到, git tag 命令列出了存储库中的可用标签。

git tag显示

它是用于显示特定标签详细信息的特定命令。它被用作:

句法:

$ git tag show <tagname>  

上面的命令将显示标签描述,考虑下面的命令:

$ git tag show projectv1.0  

输出:

file

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

git 标签 -l ".*”:

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

句法:

$ git tag -l "<pattern>.*"  

上面的命令将显示所有包含通配符的标签。考虑以下命令:

$ git tag -l "pro*"  

输出:

file

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

Git标签的类型

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

  • 带注释的标签
  • 轻量标签

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

带注释的标签

带注释的标签是存储额外元数据(如开发人员姓名、电子邮件、日期等)的标签。它们作为一组对象存储在 Git 数据库中。

如果您要指向并保存任何项目的最终版本,则建议创建带注释的标签。但是如果你想做一个临时的标记点或者不想分享信息,那么你可以创建一个轻量级的标签。带注释的标签中提供的数据对于项目的公开发布至关重要。有更多选项可用于注释,例如您可以为项目注释添加消息。

要创建带注释的标签,请运行以下命令:

句法:

$ git tag <tag name> -m "< Tag message>  

上面的命令将创建一个带有消息的标签。带注释的标签包含一些附加信息,如作者姓名和其他项目相关信息。考虑下图:

file

上面的命令将在我的项目存储库的 master 分支中创建一个带注释的标签projectv1.1

当我们显示一个带注释的标签时,它会显示更多关于标签的信息。考虑以下输出:

file

轻量级标签:

Git 支持另一种类型的标签;它被称为轻量级标签。这两个标签的动机与在存储库中标记一个点相同。通常,它是存储在文件中的提交。它不存储不必要的信息以保持轻量级。轻量级标签中没有提供诸如-a、-s-m 之类的命令行选项,请传递一个标签名称。

句法:

$ git tag <tag name>  

上面的命令将创建一个轻量级标签。考虑下面的例子:

$ git tag projectv1.0  

file

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

它将显示比带注释的标签减少的输出。考虑以下输出:

file

Git推送标签

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

  • Git push origin
  • Git push origin -tags/ Git push --tags

git push 起源 :

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

句法:

$ git push origin <tagname>  

上面的命令将推送指定的标签名称作为发布点。考虑下面的例子:

我在本地存储库中创建了一些标签,我想将其推送到我的 GitHub 帐户。然后,我要操作上面的命令。考虑下图;这是我的远程存储库当前状态。

file

上图将发布点显示为0 releases。现在,执行上面的命令。考虑以下输出:

file

我已将我的 projectv1.0 标签推送到远程存储库。它将更改存储库的当前状态。考虑下图:

file

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

file

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

git push origin --tag/ git push --tags:

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

句法:

$ git push origin --tags  

或者

$ git push --tags  

上面的命令会将本地存储库中的所有可用标签推送到远程存储库。考虑以下输出:

输出:

file

标签已推送到远程服务器源;因此,发布点也被更新。考虑以下存储库快照:

file

发布点根据标签在上述输出中更新。您可以看到版本更新为2 个releases

Git 删除tag

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

句法:

$git tag --d <tagname>  

或者

$ git tag --delete <tagname>  

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

$ git tag --d projectv1.0  

考虑以下输出:

file

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

删除Remote tag:

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

句法:

$ git push origin -d <tagname>  

或者

$ git push origin --delete<tag name>  

上面的命令将从远程服务器中删除指定的标签。考虑以下输出:

file

该**projectv1.0 tag已经从远程服务器起源删除。

删除多个标签:

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

句法:

$ git tag -d <tag1> <tag2>  

输出:

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

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

$ git push origin -d <tag1> <tag2>  

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

Git Checkout 标签

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

句法:

$ git checkout -b < new branch name> <tag name>  

上面的命令将创建一个与存储库状态相同的新分支,因为它在标签中。考虑以下输出:

file

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

从较旧的提交创建标签:

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

< git tag <tagname> < reference of commit>  

上述命令中,40位数字不需要全部给出;你可以给它一部分。

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

检查较旧的提交:

要检查较旧的提交,请运行 git status 命令。它将按如下方式运行:

$ git status  

考虑以下输出:

file

上面的输出显示了较旧的提交。假设我想为我的提交创建一个标签,从828b9628开始。复制提交的特定引用。并将其作为参数传递给上述命令。考虑以下输出:

file

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

赞(0) 打赏
未经允许不得转载:IDEA激活码 » Git系列教程 --- 26、Git Tags

一个分享Java & Python知识的社区