我按照此处的说明进行操作:https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key
我没有发表评论。只有我的名字和电子邮件与我的 github 帐户匹配。
然后,我将 git 配置设置为以下内容:
[user]
name = First Last
email = [email protected]
signingkey = ABCDMYKEY12345
[commit]
gpgsign = true
[gpg]
program = C:\\Program Files (x86)\\GnuPG\\bin\\gpg.exe
gpg --version
回归
$ gpg --version
gpg (GnuPG) 2.2.29-unknown
libgcrypt 1.9.3-unknown
我跑了
GIT_TRACE=1
并返回了
$ GIT_TRACE=1 git commit --allow-empty -m "signing"
09:30:10.094197 exec-cmd.c:237 trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
09:30:10.102197 git.c:455 trace: built-in: git commit --allow-empty -m signing
09:30:10.126235 run-command.c:666 trace: run_command: 'C:\Program Files (x86)\GnuPG\bin\gpg.exe' -bsau ABCDMYKEY12345
gpg: skipped "ABCDMYKEY12345": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object
我已经三重检查了拼写错误。这看起来不像是重复的 gpg:跳过“XXBDXX4E”:秘密密钥不可用。 gpg:签名失败:密钥不可用
因为我的gpg程序设置正确
我见过这个问题 Git 并不将 gpg 密钥视为秘密,即使它是秘密,我该如何修复它?
但是我不明白gpg2的事情。我的 gpg 版本是 2。为什么我需要另一个 gpg2 程序。另外,我从哪里得到gpg2?它应该与 Git 一起提供吗?
我在 git config 中更改了 gpg.program 以指向 Git 的 gpg,它在我的计算机上位于
C:/Program Files/Git/usr/bin/gpg.exe
对我来说,逐步解决方案是
git config --global gpg.program "C:/Program Files/Git/usr/bin/gpg.exe”
gpg --full-generate-key
Follow the instruction on generating key
Copy the key
git config --global user.signingkey 8DCAD9B************