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

Bor*_*ris 9 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
Run Code Online (Sandbox Code Playgroud)

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

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

q0r*_*ban 13

如果您使用Homebrew安装了gpg,并且也在使用GPGTools,则需要卸载Homebrew的gpg。

# Uninstall gpg in homebrew so that it uses the gpg in GPGTools instead
$ brew uninstall gpg

# You might need to do some extra cleanup afterward as well:
$ rm -r /opt/homebrew/etc/gnupg

# Restart the gpg-agent so that it uses the correct one:
$ gpgconf --kill gpg-agent
Run Code Online (Sandbox Code Playgroud)

之后,git 能够再次签署我的提交。

  • 这就是给我的!计算机重新启动后,我的计算机决定使用 Homebrew 的 gpg。 (2认同)

小智 10

我在遇到同样的错误时偶然发现了这一点,而且我已经在使用最新版本的 gpg (2.2.17)。对我来说,结果是多方面的。

  1. 在提交之前,我必须运行$ export GPG_TTY=$(tty). 然后提示密码提示出现。
  2. 如果我使用带有特殊字符的密码,它就不起作用(提示说我在尝试使用时密码错误),所以我只能使用字母数字字符。

如果您这样做是为了在 GitHub 上获得经过验证的提交,请确保姓名和电子邮件地址与您在 GitHub 上的内容相匹配。

  • 当我运行“export GPG_TTY=$(tty)”时,没有任何反应 (3认同)