我正在尝试生成密钥并签署提交。我的密钥列表: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/bin
1.x,由git
命令使用。
存在什么问题?
您需要在<gpg2>\latest\pub
文件夹中将gpg2.exe
复制到gpg.exe
中,这样PATH
实际上可能在gpg.exe
中的gpg.exe
1.x之前包含git
2.x。
或者,如果不起作用,则将<gpg2>\latest\pub\gpg2.exe
复制到<git>/usr/bin/gpg.exe
中。