我正在尝试生成密钥并签署提交。我的重点清单:
gpg2 --list-keys
:
C:/Users/raski/AppData/Roaming/gnupg/pubring.gpg
------------------------------------------------
pub 2048R/8E3A3251 2016-11-26
uid [ultimate] My Name <raski@example.com>
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
user.email=raski@example.com
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而不是gpg 2,尽管我已经配置了gpg2的路径。可能存在什么问题?
答案 0 :(得分:2)
这就是为什么它仍然使用gpg而不是gpg 2,尽管我已经配置了gpg2的路径。
那是因为git for windows本身在gpg.exe
文件夹中包含<git>/usr/bin
1.x,由git
命令使用。
可能存在什么问题?
您需要在<gpg2>\latest\pub
文件夹中将gpg2.exe
复制到gpg.exe
,这样PATH
可能实际上包含gpg.exe
2.x之前的gpg.exe
来自git
的{{1}} 1.x
或者,如果它不起作用,请将<gpg2>\latest\pub\gpg2.exe
复制到<git>/usr/bin/gpg.exe
。
答案 1 :(得分:2)
只需删除gpg.exe
下的<git>/usr/bin
文件。