我目前有以下~/.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'
答案 0 :(得分:1)
使用Git 2.23(2019年第三季度),您现在有了一个新的tag.gpgSign
配置变量,它将“ git tag -a
”变成“ git tag -s
”!
请参见commit 1c6b565的Tigran Mkrtchyan (tigran1999
)(2019年6月5日)。
(由Junio C Hamano -- gitster
--在commit 492d7a5中合并,2019年7月9日)
标签:添加tag.gpgSign配置选项以强制所有标签进行GPG签名
由于许多CI / CD工具不允许在以下情况下控制命令行选项
执行git tag
命令,配置文件中的默认值
如果需要,将允许执行标签签名。
添加了新的配置文件选项
tag.gpgSign
以定义默认行为 标签签名。
要覆盖默认行为,可以使用命令行选项-s
,--sign
和--no-sign
:如果$ git tag -m "commit message"
tag.gpgSign
选项为true,则会生成GPG签名标签,而
$ git tag --no-sign -m "commit message"
将跳过签名步骤。
git config
for tag现在包括:
tag.gpgSign
:一个布尔值,用于指定是否所有标签都应进行GPG签名。
在自动化脚本中运行时使用此选项可能导致对大量标签进行签名。
因此,使用代理来避免多次键入gpg密码很方便。请注意,此选项不会影响由“
-u <keyid>
”或“--local-user=<keyid>
”选项启用的标签签名行为。
答案 1 :(得分:0)
我想,这个问题没有得到足够长的答案,以保证我的解决方法是唯一的答案。只需设置一个git别名:
git alias.tag 'tag -s'