Git 标签
标签作为Git历史中的特定点。标签用于标记提交阶段的相关性。我们可以为将来的参考标记一个提交。主要用于标记项目的初始点,如v1.1。
标签类似于分支,一旦创建它们就不会改变。我们可以在一个分支或不同的分支上使用任意数量的标签。下图演示了各个分支上的标签。
在上面的图片中,有许多分支的版本。所有这些版本都是存储库中的标签。
有两种类型的标签。
- 注解标签
- 轻量级标签
这两种标签都是相似的,但在存储的元数据量方面有所不同。
何时创建标签
- 当您想要为代码的稳定版本创建发布点时。
- 当您想要创建一个历史点,以便将来可以重复使用。
Git 创建标签
要先创建标签,请切换到您想要创建标签的分支。要检出分支,请运行以下命令:
$ git checkout <Branch name>
现在,您位于所需的分支上,例如,master。请参考以下输出:
你可以使用git tag命令创建一个标签。创建一个带有某个名称的标签,例如 v1.0, v1.1, 或任何你想要的其他名称。要创建一个标签,请按照以下命令运行:
语法:
$ git tag <tag name>
上述命令将标记项目的当前状态。考虑下面的示例:
$ git tag projectv1.0
上述命令将在主分支上创建一个标记点,其名称为 projectv1.0 。
Git列出标签
我们可以列出仓库中可用的标签。有三种选项可以列出仓库中的标签,它们如下:
- git tag
- git show
- git tag -l “.*”
“git tag”:
这是最常用的选项,用于列出仓库中所有可用的标签。使用方法如下:
$ git tag
输出:
从上面的输出中,我们可以看到,git tag命令列出了存储库中可用的标签。
git tag show <tagname>
它是一个特定的命令,用于显示特定标签的详细信息。它的用法是:
语法:
$ git tag show <tagname>
以上命令将显示标签描述,请考虑下面的命令:
$ git tag show projectv1.0
输出:
git tag -l ".*":
这也是一个特定的命令行工具。它使用通配符模式显示可用的标签。假设我们有十个标签,如v1.0、v1.1、v1.2直到v1.10。然后,我们可以使用标签模式v列出所有v模式的标签。它的用法如下:
语法:
$ git tag -l ".*"
以上命令将显示包含通配符字符的所有标签。考虑以下命令:
$ git tag -l "pro*"
输出:
上面的命令显示以 pro 开头的标签列表。
Git标签的类型
在git中有两种类型的标签:
- 已注释标签
- 轻量级标签
让我们详细了解这两种标签。
已注释标签
已注释标签是存储额外元数据(如开发人员姓名、电子邮件、日期等)的标签。它们被存储为Git数据库中的一组对象。
如果您要指向和保存项目的最终版本,则建议创建一个已注释标签。但如果您想创建一个临时的标记点或者不想分享信息,那么可以创建一个轻量级标签。提供的注释标签中的数据对于项目的公开发布是必不可少的。有更多可用的选项用于注释,比如您可以为项目的注释添加一条消息。
要创建一个已注释标签,请运行以下命令:
语法:
$ git tag -m "< Tag message>
上述命令将创建一个带有消息的标签。带注释的标签包含一些额外的信息,如作者姓名和其他与项目相关的信息。请考虑下面的图片:
上述命令将在我项目的代码库的主分支中创建一个带有注释的标签 projectv1.1 。
当我们显示一个带有注释的标签时,它会显示关于标签的更多信息。请考虑以下输出:
轻量级标签
Git还支持另一种类型的标签;它被称为轻量级标签。这两种标签的目的都是在代码仓库中标记一个节点。通常,它是在一个文件中存储的提交。为了保持轻量级,它不存储不必要的信息。在轻量级标签中不提供像-a、-s或-m这样的命令行选项,只需传入一个标签名。
语法:
$ git tag <tag name>
上面的命令将创建一个轻量级标签。考虑下面的示例:
$ git tag projectv1.0
给定的输出将创建一个名为 projectv1.0 的轻量级标签。
它将显示比注释标签更少的输出。考虑以下输出:
Git Push Tag
我们可以将标签推送到远程服务器上的项目。这将帮助其他团队成员知道从哪里获取更新。它将显示为远程服务器账户上的 发布点 。git push命令提供了一些特定选项来推送标签。它们如下所示:
Git push origin <tagname>
Git push origin -tags/ Git push --tags
git push origin
我们可以使用git push命令推送任何特定的标签。使用方法如下:
语法:
$ git push origin <tagname>
上述命令将指定的标签名称作为发布点推送。考虑以下示例:
我已经在我的本地代码库中创建了一些标签,并且我想将它们推送到我的GitHub账户上。然后,我需要执行上述命令。参考下面的图片,它是我的远程代码库当前的状态。
上面的图像显示了发布点如下: 0发布 。现在,执行上述命令。考虑下面的输出:
我已经将我的项目v1.0标签推送到远程存储库。 这将改变存储库的当前状态。 请参考下面的图像:
通过刷新存储库,它显示为发布点 1发布 。我们可以通过点击它来查看此发布版本。它将显示为:
我们可以将其下载为zip和tar文件。
git push origin –tag/ git push –tags
给定的命令将一次性推送所有可用的标签。它将根据存储库中可用的标签数量创建相应数量的发布点。它的用法如下:
语法:
$ git push origin --tags
或者
$ git push --tags
上述命令将从本地代码库推送所有可用的标签到远程代码库。请参考以下输出:
输出:
标签已经推送到远程服务器origin;因此,发布点也已更新。请参考以下存储库的快照:
根据标签更新了上述输出中的发布点。你可以看到发布点已更新为 2 releases 。
Git 删除标签
Git允许在任何时候从仓库中删除标签。要删除标签,请运行以下命令:
语法:
$git tag --d <tagname>
或者
$ git tag --delete <tagname>
以上命令将从本地存储库中删除特定的标签。假设我想要删除标签 projectv1.0 那么操作步骤如下:
$ git tag --d projectv1.0
考虑以下输出:
从存储库中删除了标签 projectv1.0。
删除远程标签
我们也可以从远程服务器中删除标签。要从远程服务器中删除标签,请运行以下命令:
语法:
$ git push origin -d <tagname>
或者
$ git push origin --delete<tag name>
上述命令将从远程服务器中删除指定的标签。请参考以下输出:
已从远程服务器中删除 projectv1.0 标签。
删除多个标签
我们可以通过单个命令删除多个标签。要同时删除多个标签,请运行以下命令:
语法:
$ git tag -d <tag1> <tag2>
输出结果:
上述命令将从本地仓库中删除这两个标签。
我们还可以从远程服务器上删除多个标签。要从服务器源中删除标签,请运行以下命令:
$ git push origin -d <tag1> <tag2>
上述命令将从服务器上删除两个标签。
Git检出标签
Git实际上没有检出标签的概念。但是,我们可以通过从标签创建新分支来实现。要检出标签,请运行以下命令:
语法:
$ git checkout -b < new branch name> <tag name>
上述命令将创建一个新的分支,其状态与标签中的存储库相同。请参考以下输出:
上述命令将创建一个新分支,并将仓库的状态转移到 new_branchv1.1 ,就像在标记projectv1.1上一样。
从旧提交中创建标记:
如果你想回到历史记录并在那个点上创建一个标记,Git允许你这样做。要从旧提交创建标记,请运行以下命令:
< git tag <tagname> < reference of commit>
在上面的命令中,不需要给出所有的40位数字;可以只给出其中的一部分。
假设我想为我的较旧的提交创建一个标签,那么步骤如下:
检查较旧的提交:
要检查较旧的提交,运行git status命令。其操作如下:
$ git status
考虑以下输出: