尝试签署提交时出现此错误:
git commit -S -m "test"
gpg: skipped "EF617ACA9EC3XXXX": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object
这是gpg --list-secret-keys --keyid-format LONG的输出
钥匙在那里
sec rsa4096/EF617ACA9EC3XXXX 2020-05-17 [SC] [expires: 2022-05-17]
AD68154000A712DCD161D826EF617ACA9EC3XXXX
uid [ultimate] name <email@gmail.com>
这是具有相同密钥的git config
user.signingkey=EF617ACA9EC3XXXX
user.email=email@gmail.com
知道有什么问题吗?
首先检查git config gpg.program
,看是否为gpg
或gpg2
(如此处所示)。
然后输入where gpg
ndwhere gpg2
以检查GPG程序考虑使用哪个路径。
我建议设置gpg.program
为gpg2
,然后将你的gpg.exe
(假设其版本为2.x)复制到gpg2.exe
这应该迫使Git / GPG充当gpg2。
gpg在git config中。gpg.exe的路径也是正确的,而且我根本没有gpg2(不是仅在Linux上吗?)
@giveall Git for Windows当前随附的gpg实际上是gpg 2 -2.2.17)
@giveall您正在使用Windows的哪个版本的Git?
@giveall尝试将其设置
gpg.program
为gpg2
,然后将您的gpg.exe
(假设其版本为2.x)复制到gpg2.exe
进行测试。另请参阅stackoverflow.com/a/46884134/6309无论如何,将gpg.exe重命名为gpg2.exe并在配置中进行了更改非常有帮助。