Git GPG签名失败,没有明确的消息

时间:2018-09-21 13:34:12

标签: git github gnupg

如果我将Git设置为使用GPG密钥签名,它将失败。我已经尝试了GIT_TRACE,但实际上并没有给我更多信息:

$ GIT_TRACE=1 git commit
15:29:35.112157 git.c:344               trace: built-in: git 'commit'
15:29:35.115745 run-command.c:626       trace: run_command: 'code --wait' '/Users/b/VurbAgency/haarlem.github.io/.git/COMMIT_EDITMSG'
15:29:52.884006 run-command.c:626       trace: run_command: 'gpg' '--status-fd=2' '-bsau' 'SECRETKEYID'
error: gpg failed to sign the data
fatal: failed to write commit object

当我尝试运行'gpg' '--status-fd=2' '-bsau' 'SECRETKEYID'时,它只是在说BEGIN_SIGNING H8后挂起,并且不再执行任何操作。

关于如何解决这个问题或研究途径的任何想法?

2 个答案:

答案 0 :(得分:1)

遇到相同的错误时,我偶然发现了这个问题,而我已经在使用最新版本的gpg(2.2.17)。对我来说,事实证明这是多方面的事情。

  1. 在提交之前,我必须运行$ export GPG_TTY=$(tty)。然后,这提示密码短语提示出现。
  2. 如果我使用的密码短语带有特殊字符,则无法使用(提示说我尝试使用时密码不好),因此我只能使用字母数字字符。

如果您要在GitHub上获得经过验证的提交,请确保名称和电子邮件地址与GitHub上的名称和电子邮件地址匹配。

答案 1 :(得分:0)

当我看到自己的GPG版本为2.2.5,最新版本为2.2.10后,我使用brew upgrade gpg在Mac上更新了GPG。

目前,此问题已解决。但是,我仍然不知道导致此问题的原因是什么。