Windows10下Git提交推送报错:cannot spawn gpg2: No such file or directory
解决Windows 10下Git提交报错:error: cannot spawn gpg2: No such file or directory
嘿,这个问题我帮不少开发者搞定过,本质就是Git想调用GPG工具签名你的提交,但系统里要么没装对应工具,要么配置的程序名称不对,咱们一步步来解决:
先理清问题根源
这个报错的核心是:Git配置了自动用GPG签名提交,但你的Windows系统里找不到gpg2程序——毕竟Windows环境下,GPG工具默认的命令是gpg.exe,不是gpg2,要么就是你压根没装GPG工具。
两种解决思路,按需选就行
思路1:不需要GPG签名,直接关闭该功能
如果你本来就没打算用GPG签名来验证提交真实性,那最简单的方法就是关掉Git的自动签名配置:
- 打开Git Bash或者CMD,运行这条命令:
git config --global commit.gpgsign false - 之后再尝试提交代码,应该就能顺利完成了。
思路2:需要GPG签名,配置好工具和路径
如果你确实需要用GPG签名来保证提交的安全性,那按下面的步骤操作:
- 安装GPG工具
去GnuPG官方站点下载适配Windows 10的安装包,安装时一定要勾选「Add to PATH」选项——这一步很重要,否则系统命令行找不到GPG程序。 - 验证GPG是否能正常调用
安装完成后,打开Git Bash或者CMD,输入:
如果能正常输出GPG的版本信息,说明路径配置没问题;如果报错,检查安装时是否选了加PATH,或者手动把GPG的安装目录(比如gpg --versionC:\Program Files (x86)\GnuPG\bin)加到系统环境变量的PATH里。 - 修正Git的GPG程序配置
Windows下GPG的默认命令是gpg,不是gpg2,所以更新Git的配置:git config --global gpg.program gpg - 配置你的GPG签名密钥
要是还没生成GPG密钥,先运行gpg --gen-key按照提示生成一个;然后把密钥ID配置到Git里:
(密钥ID可以通过git config --global user.signingkey <你的GPG密钥ID>gpg --list-keys查看,取你生成的密钥那一行的长ID后8位就行)
最后测试一下
随便修改一个文件,执行git add .和git commit -m "测试GPG签名提交",如果没有报错,说明配置成功,接下来就能正常推送代码啦!
内容的提问来源于stack exchange,提问作者Anthony Mack




