创建 Git 标签

为了创建一个 git 标签,你需要运行以下命令:

git tag <name-of-tag>

在创建标签时,将语义标识符放入存储库的状态而不是 <name-of-tag>。
Git 支持两种标签:带注释的标签和轻量级标签。
这两个标签之间的区别在于它们存储的元数据量。
另一个区别是带注释的标签是公共的,轻量级标签是私有的。

检查git标签

在 git checkout 命令的帮助下,我们可以检查仓库的状态。

此命令会将 repo 置于单独的 HEAD 状态。
因此,更改将创建一个新的单独提交,而不是更新标签,它不会成为任何分支的一部分。
此提交只能通过 SHA 哈希访问。

git checkout v1.3
git tag Git标签

轻量级标签

下面的命令创建一个标识为 v1.3-lw 的轻量级标签。
它们是在没有 -a、-s 或者 -m 选项的情况下创建的。
轻量级标签生成一个新的标签校验和,将其存储在 .git/目录中。

git tag v1.3-lw

标记旧提交

默认情况下, git tag 在 HEAD 提到的提交上创建一个标签。
它可以作为对特定提交的引用传递。
因此,传递的提交将被标记而不是默认为 HEAD。
运行 git log 命令以输出旧提交的列表:在下面的示例中,合并分支 'feature'commit 用于新标签。

要传递给 Git,必须将 SHA 哈希引用到提交:

git log --pretty=oneline
29389857951b64cf874c3557a0f3547bd83b899s Merging branch 'crossword'
b4g5697498bd301d84096da251c98a07c7723e65 init method for crossword
89f3gaab4479697da7686c15f77a3d64d9165190 little changes in logic
3hy4a271eda8725415634dd79daabbc4d9b6008e Merging branch 'how-it-works'

运行 git tag 命令,为上一个示例中选择的提交生成带有 v1.2 ID 的新注释提交:

git tag -a v1.2 29389857951b64cf874c3557a0f3547bd83b899s

说明

标签是显示 Git 历史记录中特定点的引用。
标记的主要功能是在 Git 历史记录中捕获一个标记版本发布的点。
标签不会改变。
创建标签后,它没有提交历史记录。

删除git标签

我们可以绕过 -d 选项删除标签,并将标签标识符删除到 git 标签。
我们可以在下面找到此操作的示例:

git tag
v1
v2
v3
git tag -d v1
git tag
v2
v3

git将标签推送到远程

为了将多个标签推送到一起,我们应该将 --tags 选项传递给 git push 命令,如果另一个用户克隆了一个存储库,他们将获得新标签。

git push oroirn v1.3
Counting objects: 9, done.
Delta compression using up to 5 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (12/12), 2.05 KiB | 0 bytes/s, done.
Total 12 (delta 3), reused 0 (delta 0)
To git@github.com:gr8/gittagdocs.git
* [new tag] v1.3 -> v1.3

git更换旧标签

如果尝试使用现有标签标识符标记较旧的提交,则会发生错误。
我们应该使用 -f FORCE 选项来更新现有标签。
它将取消标记标识符的任何现有内容。

git tag -a -f v1.3 29389857951b64cf874c3557a0f3547bd83b899s

带注释的标签

Git 数据库将这些标签存储为完整的对象。
一些另外的元数据存储在带注释的标签中。
这些可以是标记者姓名、电子邮件和日期。
带注释的标签包括一条标记消息,就像在提交的情况下一样。
出于安全目的,它们还可以使用 GPG(GNU Privacy Guard)进行签名和验证。

运行下面的命令,我们可以使用 v1.3 id 创建一个新的带注释的标签。
然后,配置的默认文本编辑器将显示提示进一步输入元数据。

git tag -a v1.3

标签列表

运行下面的代码以列出存储的标签:

git tag

结果,我们将获得以下输出:

v0.10.0
v0.10.0-rc1
v0.11.0
v0.11.0-rc1
v0.11.1
v0.11.2
v0.12.0
v0.12.0-rc1
v0.12.1
v0.12.2
v0.13.0
v0.13.0-rc1
v0.13.0-rc2

我们可以使用带有通配符表达式的 -l 选项来清除标签列表:

git tag -l *-rc*
v0.10.0-rc1
v0.11.0-rc1
v0.12.0-rc1
v0.13.0-rc1
v0.13.0-rc2
v0.14.0-rc1
v0.9.0-rc1
v15.0.0-rc.1
v15.0.0-rc.2
v15.4.0-rc.3
日期:2020-06-02 22:16:35 来源:oir作者:oir