如何配置git以默认PGP签名我的标签(而不是我的提交)

nqwrtyyt  于 2023-02-28  发布在  Git
关注(0)|答案(2)|浏览(100)

我目前有以下~/.gitconfig

[gpg]
    program = /usr/local/bin/krgpg
[commit]
    gpgSign = true
[tag]
    forceSignAnnotated = true

提交要求我使用PGP签名:

git commit -m "Add package.json"
Krypton ▶ Requesting git commit signature from phone

但是,我只想签署我的标签,而跳过签署提交。

问:有没有办法配置git只对我的标签进行签名

我是说,除了化名:

$ git alias.tag 'tag -s'
jucafojl

jucafojl1#

在Git 2.23(Q3 2019)中,你有了一个新的配置变量tag.gpgSign,它可以把“git tag -a“变成“git tag -s“!你可以通过以下命令默认启用它:

git config --global tag.gpgSign true

参见Tigran Mkrtchyan ( tigran1999 )(2019年6月5日)。
(由Junio C Hamano -- gitster --合并至commit 492d7a5,2019年7月9日)

tag:添加tag.gpgSign配置选项,以强制所有标记进行GPG签名

由于许多CI/CD工具不允许在执行git tag命令时控制命令行选项,因此配置文件中的默认值将允许在需要时强制标记签名。
添加了新的配置文件选项tag.gpgSign,以定义标记签名的默认行为。
要覆盖默认行为,可使用命令行选项-s--sign--no-sign

$ git tag -m "commit message"

如果tag.gpgSign选项为真,则将生成GPG签名标记,而

$ git tag --no-sign -m "commit message"

将跳过签名步骤。
git config for标记现在包括:

tag.gpgSign

一个布尔值,用于指定是否所有标记都应该是GPG签名的。
在自动脚本中运行时使用此选项可能会导致对大量标记进行签名。
因此使用代理来避免多次输入你的gpg密码是很方便的。
请注意,此选项不影响由“-u <keyid>“或“--local-user=<keyid>“选项启用的标记签名行为。

gcuhipw9

gcuhipw92#

我想,这个问题已经很久没有答案了,我的解决方案是唯一的答案。设置一个git别名:

git alias.tag 'tag -s'

相关问题