首先是一些关于我当前设置的背景信息。
在Windows 11上,在Windows终端中使用PowerShell 7,我启用了以下配置:
# $HOME\.gitconfig
user.signingkey=F380062B9F847687
commit.gpgsign=true
gpg.program=C:/Program Files (x86)/GnuPG/bin/gpg.exe
字符串
我通过winget
安装了GPG
winget install --id GnuPG.GnuPG
型
之后,我为GNU GPG配置了以下设置:
# $HOME\.gnupg\gpg.conf
use-agent
pinentry-mode loopback
# $HOME\.gnupg\gpg-agent.conf
allow-loopback-pinentry
的字符串
出于故障排除的目的,我为Git启用了详细命令输出:
Set-EnvironmentVariable -Key GIT_TRACE -Value 1 -Scope Process
型
Kill and restart and gpg-agent
只是为了确保:
gpgconf --kill gpg-agent && gpgconf --launch gpg-agent
型
最后,我尝试使用以下命令签署一个提交:
git commit -m 'test'
00:31:55.001562 exec-cmd.c:243 trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
00:31:55.009679 git.c:462 trace: built-in: git commit -m 'test'
00:31:55.024849 run-command.c:661 trace: run_command: 'C:/Program Files (x86)/GnuPG/bin/gpg.exe' -bsau F380062B9F847687
这就是我现在被困的地方。Git命令永远不会完成,并且永远处于不确定状态。没有错误消息,我可以拿起进一步的谷歌搜索,也没有日志文件在$HOME\.gnupg
目录(可疑?)所以我确实很感激任何其他能帮我解决这个问题的线索。
1条答案
按热度按时间cygmwpex1#
我偶然发现了一个解决方案:在我的例子中,没有设置环境变量
GNUPGHOME
,所以添加了推荐的默认记录$HOME\.gnupg
,现在一切都正常了。进一步阅读的来源:https://www.gnupg.org/documentation/manuals/gnupg/GPG-Configuration.html