git创建GPG签名的tag

分两步:

  • 生成PGP的key
  • 使用pgp pubkey给tag签名

生成PGP key

GPG = GnuPG,是Gnu提供的一个产生PGP秘钥的工具。

生成秘钥:

$ gpg --gen-key
gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

gpg: directory '/home/steveliu/.gnupg' created
gpg: keybox '/home/steveliu/.gnupg/pubring.kbx' created
Note: Use "gpg --full-generate-key" for a full featured key generation dialog.

GnuPG needs to construct a user ID to identify your key.

Real name: zhangsan
Email address: zhangsan@163.com
You selected this USER-ID:
    "zhangsan <zhangsan@163.com>"

输入你的Real name(这个后面作为key的userid使用)和Email address。

输入密码来保护这把密钥(后续在使用密钥的时候,需要输入密码)

查看秘钥:

gpg --list-secret-keys --keyid-format LONG

导出公钥:

导出公钥:
gpg --armor --output public-key-gmail.txt --export USERID
导出私钥:
gpg --armor --output secret-key-gmail.txt --export-secret-keys USERID

参考GPG密钥的生成与使用

使用pgp pubkey给tag签名

git tag v1.0 -u MASTERKEYID

可能遇到的问题及解决

打tag失败

error: gpg failed to sign the data

error: unable to sign the tag

可以试试增加环境变量

export GPG_TTY=$(tty)
`git tag --format` 命令的详细用法如下。 ### 命令语法 ``` git tag --format=<format> [<tag-name>] ``` 其中: - `<format>`:用于指定标签输出格式的字符串。 - `<tag-name>`:可选参数,用于指定要显示的标签名称。如果省略该参数,则会显示所有标签的信息。 ### 输出格式 `--format` 参数支持的占位符如下: - `%n`:换行符。 - `%d`:标签所在的分支名称。 - `%D`:标签所在的分支名称(带有括号)。 - `%H`:标签所在的提交的 SHA-1 值。 - `%h`:标签所在的提交的短 SHA-1 值(7 位)。 - `%s`:标签说明信息。 - `%f`:标签所在的对象类型(commit、tree、blob、tag)。 - `%a`:标签的作者名称。 - `%ae`:标签的作者邮箱。 - `%ad`:标签的创建时间(RFC2822 格式)。 - `%ar`:标签的相对创建时间。 - `%at`:标签的创建时间戳。 - `%ai`:标签的创建时间(ISO 8601 格式)。 - `%c`:标签的提交者名称。 - `%ce`:标签的提交者邮箱。 - `%cd`:标签的提交时间(RFC2822 格式)。 - `%cr`:标签的相对提交时间。 - `%ct`:标签的提交时间戳。 - `%ci`:标签的提交时间(ISO 8601 格式)。 - `%G?`:标签是否已经被 GPG 签名(G:已签名;U:未签名)。 - `%g`:缩写的、可行的 Git 对象名;如果没有,则输出空字符串。 - `%v`:符合语义化版本规范的标签名称。 ### 示例 #### 显示所有标签的信息 ``` $ git tag --format="%(refname:short) %(taggerdate:short) %(subject)" v1.0 2021-01-01 Initial release v2.0 2021-02-01 Bug fixes v3.0 2021-03-01 New features ``` 该命令输出所有标签的名称、创建时间和说明信息。 #### 显示指定标签的信息 ``` $ git tag --format="%(refname:short) %(taggerdate:short) %(subject)" v2.0 v2.0 2021-02-01 Bug fixes ``` 该命令输出指定标签的名称、创建时间和说明信息。 #### 将格式设置为默认值 ``` $ git config --global format.tag "%(refname) %(taggerdate:short) %(subject)" ``` 该命令将输出格式设置为默认值,使得每次执行 `git tag` 命令时都会使用该默认格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值