我正在尝试生成密钥并签署提交。我的密钥列表:
gpg2 --list-keys

C:/Users/raski/AppData/Roaming/gnupg/pubring.gpg

------------------------------------------------
pub   2048R/8E3A3251 2016-11-26
uid       [ultimate] My Name <[email protected]>
sub   2048R/29C8D116 2016-11-26

git config --global -l
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.required=true
user.name=roma
[email protected]
user.signingkey=8E3A3251
commit.gpgsign=true
gpg.program=D:/Programs/GnuPG/pub/gpg2

我试着做出承诺:
git commit -m "initial"

之前,我在设置github中添加了我的公共pgp密钥。但是,我错了:
gpg: skipped "2048R/8E3A3251": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object

这就是为什么它仍然使用gpg,而不是gpg2,尽管我已经配置了到gpg2的路径。存在什么问题?

最佳答案

这就是为什么它仍然使用gpg,而不是gpg2,尽管我已经配置了到gpg2的路径。
这可能是因为git for windows本身在其gpg.exe文件夹中包含<git>/usr/bin1.x,由git命令使用。
存在什么问题?
您需要在<gpg2>\latest\pub文件夹中将gpg2.exe复制到gpg.exe中,这样PATH实际上可能在gpg.exe中的gpg.exe1.x之前包含git2.x。
或者,如果不起作用,则将<gpg2>\latest\pub\gpg2.exe复制到<git>/usr/bin/gpg.exe中。

09-04 01:49