我刚开始使用 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
0x29191221233411echo "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/