git tag详解

打印 上一主题 下一主题

主题 995|帖子 995|积分 2985


前言

通常我们在生产环境发版时,创建一个 tag,如许一个不可修改的版本将被冻结起来,这对于发布或者版本管理非常有益。

1. Git tag的根本概念和用法

1.1. 什么是 Git tag?

在 Git 中,tag是标记存储库历史记录中特定提交的一种方式。tag通常用于标记项目的特定版本,比方版本 1.0 或 2.0。
1.2. Git 标签有什么作用?

tag可以用于指定在仓库历史记录的某个特定点上创建的版本,这在软件开发中非常有用。如果必要在软件发布时创建tag,开发职员就可以跟踪哪个版本用于真实世界中的生产环境。在软件开发中,tag还可以用于标记里程碑特定功能的实现
除此之外,tag还可以用于将存储库中的提交版本控制系统中的标记关联。这可以用于确保特定版本的软件与存储库中的特定提交相干联。在软件开发中,这可以用于确保特定版本的软件与单独的存储库分支相干联

2. 创建 Git tag

可以使用消息创建带解释的 tag,也可以创建不带消息的轻量级 tag。带解释的 tag 包罗 tag 的名称、电子邮件和日期等信息,而轻量级 tag 仅是对特定提交的指针。
2.1. 创建轻量级tag

运行 git tag [tagname] 命令,后跟标签的名称。比方,git tag v2.0 将创建一个名为 “v2.0” 的轻量级标签。

2.2. 创建带有解释的tag

运行 git tag -a [tagname] 命令,后跟引号中的消息。比方,git tag -a v1.0 -m "Initial release" 将创建一个名为 “v1.0” 并带有 “Initial release” 消息解释的标签。
运行 git show [tagname] 命令,可以查察标签的详细信息,包含解释、作者、邮箱、创建日期等信息

2.3. 编辑已有的tag

运行 git tag -f [tagname] 命令,后跟新的提交哈希或分支名称。比方,git tag -f v1.0 [new-commit-hash] 将把“v1.0”标签移动到新提交。或者,git tag -f v1.0 [new-branch-name] 将标签移动到新分支的末了。


3. 列出和检出 Git tag

3.1. 列出所有tag

运行 git tag 命令。比方,git tag 将列出所有本地标签。如果要查察远程存储库中的标签,可以使用 git ls-remote --tags [remote] 命令。比方,git ls-remote --tags origin 将列出名为 origin 的远程存储库中的所有标签。

3.3. 列出匹配的tag

运行 git tag -l [pattern] 命令。比方,git tag -l v1.* 将列出所有以 “v1.” 开头的标签。

3.4. 检出tag

要检出 Git 标签,可以使用 git checkout [tagname] 命令。比方,要检出名为 “v1.0” 的标签,请运行 git checkout v1.0 命令。
检出标签将使存储库进入 “游离 HEAD” 状态,这意味着所做的任何更改都不会与分支相干联。如果要在标签上进行更改,可以创建一个新的分支来进行更改,以制止对标签进行更改并破坏历史记录。

4. 将 Git tag推送到远程存储库

4.1. 推送单个tag

运行 git push origin [tagname]。比方,要将标签“v1.0”推送到远程仓库,请使用命令 git push origin v1.0。

运行 git ls-remote 查察远程标签。可以看到v1.0已经成功推送到远程仓库。

4.2. 推送所有tag

运行 git push --tags。这将推送所有尚未在远程仓库上的本地标签。

此时我们可以在仓库看到本地的tag已经被推送过来了。

4.3. 删除远程tag

要删除远程 Git 标签,必要使用 git push 命令,后跟 --delete 选项和标署名称。比方,要删除名为 v1.0 的标签,可以运行以下命令:git push --delete origin v1.0。这将从远程存储库中删除标签。

请留意,如果您删除了远程标签,那么必要确保本地存储库中也删除了它。您可以使用 git tag -d [tagname] 命令来删除本地标签。比方,要删除名为 v1.0 的标签,可以运行以下命令:git tag -d v1.0。


5. Git tag高级用法

5.1. 署名tag

要为 Git 标签署名,可以使用 git tag -s [tagname] 命令,并使用你的 GPG 密钥对标签进行署名。比方,git tag -s v1.0 将使用您的 GPG 密钥对名为 “v1.0” 的标签进行署名。

如果报错No secret key,解决方法:在Git Bash终端配置gpg步调位置

编辑完成后:wq保存退出即可。

要验证署名的 Git 标签,请使用 git tag -v [tagname] 命令。比方,git tag -v v1.0 将验证名为 “v1.0” 的标签的署名,并表现署名者和提交 ID 等信息。如果您想验证未标记的提交,可以使用提交哈希取代标记名称,比方,您可以运行git verify-commit [commit-hash]直接验证提交,而不是运行git tag -v [tagname]。

署名标签可以资助确保标签的完备性和来源,因此它们特别适用于必要进行身份验证或必要进行安全审计的软件项目。

留意:如果报错了,请确保已经安装GPG,并且密钥已正确配置
请按照以下步骤安装并配置 GPG:

  • 在您的操作系统上打开终端命令提示符
  • 输入以下命令以安装 GPG:


  • 如果你使用的是 macOS,可以使用 Homebrew 包管理器安装 GPG:
    1. brew install gnupg
    复制代码
  • 如果你使用的是 Linux,可以使用你的包管理器安装 GPG。比方,在 Ubuntu 上,可以使用以下命令:
    1. sudo apt-get install gnupg
    复制代码
  • 如果你使用的是 Windows,可以从 Gpg4win 官方网站下载并安装 Gpg4win:https://gpg4win.org/download.html

  • 安装完成后,你可以验证 GPG 是否正确安装,可以在终端上运行以下命令:
    1. gpg --version
    复制代码
    如果你正确安装了 GPG,你应该会看到版本号和其他信息。

  • 配置密钥
    1.使用gpg --gen-key命令生成一个新的GPG密钥。这会打开一个提示,您可以在其中输入有关密钥的信息,比方您的姓名和电子邮件地址。
    2.生成密钥后,您可以使用gpg --list-keys命令列出您的密钥。这将表现您密钥的指纹,您稍后必要使用它。
    3.使用gpg --export --armor [你的钥匙指纹]命令导出您的GPG公钥。这将以ASCII装甲格式输出您的公钥,您可以将其复制并粘贴到Git托管服务中。

    ok,配置成功

    4.通过运行以下命令配置Git使用您的GPG密钥:
    1. git config --global user.signingkey [你的钥匙指纹]
    2. git config --global commit.gpgsign true
    复制代码
    运行git config --list查察user.signingkey是否配置成功。

    这些命令将告诉Git使用您的GPG密钥来签订您的提交。

5.2. tag过滤

要过滤 git 标签,请使用 git tag 命令的 --list 选项,后跟一个模式。比方,要列出以“v1.”开头的所有标记,请运行以下命令:
  1. git tag --list 'v1.*'
复制代码
这将列出所有以“v1.”开头的标记,比方“v1.0”、“v1.1”等。
你还可以使用 --contains 选项来列出包含指定提交的标记。比方,要列出包含提交 abc123 的所有标记,请运行以下命令:
  1. git tag --contains abc123
复制代码
这将列出所有包含提交 abc123 的标记。
5.3. 访问tag历史记录

要访问Git标签的历史记录,您可以使用git tag命令,带有--list选项和--sort选项,后跟version:refname以按版本号对标签进行排序。比方,要按时间顺序列出标签,您可以运行以下命令:
  1. git tag --list --sort=-v:refname
复制代码
这将以相反的时间顺序列出所有标签,并将最新的标签列在第一位。

您还可以通过添加--max-count选项,后跟要表现的标签数,来限定列出的标签数。比方,要列出最近的10个标签,可以运行以下命令:
  1. git tag --list --sort=-v:refname
  2. --max-count=10
复制代码
这将以相反的时间顺序列出最近的10个标签。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊雷无声

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表