解决 macOS 下使用 GPG 给 Git 提交签名的问题
macOS GPG好长的标题。
问题
最近整了个尾号是6666 6666
的 GPG 密钥,正好给每次的 Git 提交加个校验,问题也由此而来。
用 Git 提交的时候报如下的错误:
error: gpg failed to sign the data
fatal: failed to write commit object
总之就很奇怪,而且在 Git 的配置文件里也设置好了,就像这样:
[user]
name = SenYue
email = sencat31@outlook.com
signingkey = 9715779B2A8150AB
[commit]
gpgsign = true
但在森最终不放弃的寻找下
(并没有),最后找到了解决方法。
如果作为勇士的你,愿意参加此次冒险的话,就继续读下去吧!(什么乱七八糟的)
解决
在你的终端配置文件(.zshrc)里添加如下:
export GPG_TTY=$(tty)
用 Homebrew 安装pinentry-mac
,命令如下:
brew install pinentry-mac
修改gpg-agent.conf
配置文件:
echo "pinentry-program $(which pinentry-mac)" >> ~/.gnupg/gpg-agent.conf
修改gpg.conf
:
echo 'use-agent' >> ~/.gnupg/gpg.conf
杀掉所有的gpg-agent
:
killall gpg-agent
然后就应该好了。