我刚开始使用 git,我通过自制软件安装了 git 和 gpg。
出于某种原因,当我执行 git commit 时出现此错误
我查看了很多关于这个主题的其他 stackoverflow 问题,但没有一个对我有用。
如何修复此错误以便我可以成功上传。

error: gpg failed to sign the data
fatal: failed to write commit object

最佳答案

对于故障排除,首先要尝试两件事:

  • 运行 git config --global gpg.program gpg2 ,以确保 git 使用 gpg2 而不是 gpg 0x29191221233411
  • 运行 echo "test" | gpg2 --clearsign ,以确保 gpg2 本身正在工作

  • 如果一切正常,接下来要尝试的一件事:
  • 运行 brew install pinentry 以确保您为密码输入
  • 安装了一个好的工具

    如果在安装之后你重试 git commit 仍然得到“failed to sign the data”错误:
  • 运行 gpgconf --kill gpg-agent 杀死任何可能挂起的正在运行的代理

  • 如果说 gpgconf 没有安装或没有 --kill 选项,你可以试试这个:
  • cp ~/.gnupg ~/.gnupg-GOOD 保存 ~/.gnupg 的副本,以便稍后在需要时恢复
  • brew install gnupg21 安装 GnuPG 2.1

  • 保存 ~/.gnupg 目录副本的原因是 GnuPG 2.1 可能会以与 GnuPG 2.0 及更早版本不向后兼容的方式创建/更改一些关键数据,因此如果您想稍后返回,您可以执行 mv ~/.gnupg ~/.gnupg21 && mv ~/.gnupg-GOOD ~/.gnupg

    否则,需要运行一些基本步骤来检查您是否有一个可用的 GnuPG 环境:
  • 运行 gpg2 -K --keyid-format SHORT ,检查你是否至少有一个 key 对

  • 如果输出显示您没有 GnuPG 可以使用的 key ,那么您需要创建一个:
  • 运行 gpg2 --gen-key ,让 GnuPG 引导您完成创建 key 对
  • 的步骤


    如果您收到一条错误消息,指出“设备的 ioctl 不合适”,请执行以下操作:
  • 运行 export GPG_TTY=$(tty) 和/或将其添加到您的 ~/.bashrc˜/.bash_profile 0x291912421334111

    关于Git 错误 - gpg 未能签署数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41052538/

  • 10-13 07:12