You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git提交报错:GPG签名失败及路径问题求助

GPG签名提交失败的解决方案(Windows环境)

问题现象

  • 安装GPG后向GitHub提交代码报错,卸载Kleopatra后,Windows命令提示符(CMD)无法识别GPG路径,但Git Bash可以正常识别
  • 使用GitHub Desktop和Git Bash提交代码时,均触发以下错误:
    error: cannot spawn C:\Program: No such file or directory
    error: gpg failed to sign the data
    fatal: failed to write commit object
    

解决方案

1. 修复Git的GPG路径配置(核心问题:路径空格未转义)

错误里的C:\Program是路径被截断导致的——GPG默认安装在C:\Program Files目录下,路径含空格,Git配置时没正确处理就会触发这个问题。

在Git Bash里执行以下命令,重新指定GPG路径(二选一即可):

# 用引号包裹带空格的路径
git config --global gpg.program "\"C:\Program Files\GnuPG\bin\gpg.exe\""

或者用斜杠替换反斜杠(Git更兼容这种写法):

git config --global gpg.program "C:/Program Files/GnuPG/bin/gpg.exe"

执行完后验证配置:

git config --global --get gpg.program

输出应该是完整的GPG可执行文件路径,没有截断。

2. 把GPG路径加入系统环境变量(解决CMD识别问题)

  • 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  • 在「系统变量」里找到Path,点击「编辑」,添加C:\Program Files\GnuPG\bin(如果你的GPG安装在其他路径,替换成实际路径)
  • 重启CMD和所有Git相关程序(包括GitHub Desktop),然后在CMD里输入gpg --version,能正常输出版本信息就说明配置成功。

3. 确认GPG密钥配置正确

  • 在Git Bash里执行:
    gpg --list-secret-keys --keyid-format=long
    
    检查是否有可用的私钥,如果没有,执行gpg --full-generate-key生成新密钥。
  • 把公钥添加到GitHub:执行gpg --armor --export <你的密钥ID>,复制输出的公钥内容,粘贴到GitHub账户的「Settings」→「SSH and GPG keys」页面。

4. 配置Git自动签名提交(可选)

如果想让所有提交都自动签名,在Git Bash里执行:

git config --global commit.gpgsign true

内容的提问来源于stack exchange,提问作者Kelvin Obidozie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 18:49:13