我在Mac上安装了Git,然后尝试按照Github中概述的步骤来设置 GPG 签名验证。
我第一次通过Mac OS 终端进行测试git commit
时,系统要求我输入密码,并正确签署并推送了提交。没问题。
然后,我通过Atom编辑器测试了签名验证。但是,这次git commit
签名失败。
我尝试在 Stack Overflow 和 GitHub 上寻找解决方案,但是尽管我确实尝试了一些建议,但找不到有效的解决方案。
不幸的是,现在,当尝试通过终端git commit
时,出现以下错误消息:
错误:无法运行--version:没有此类文件或目录
错误:gpg无法对数据签名
致命:无法写入提交对象
我花了几天时间尝试在线查找解决方案,但没有成功。
我不明白错误消息的第一行( 无法运行--version:没有这样的文件或目录 ),并且无法找到类似的内容在线发行。
最近几天,我根据以下网站的建议尝试了很多事情:
我还做了以下事情:
错误:提交失败-收到退出代码128,输出为:
“错误:gpg无法签署致命数据:未能写入提交对象”
无法提交。错误:gpg无法对数据签名 致命:无法写入提交对象
不幸的是,问题仍然存在,我不知道该怎么办。
我为git config -l | grep -E 'gpg|sign
获得的输出是:
user.signingkey = 00C23E4C0619F0BD
commit.gpgsign = true
gpg.program = / usr / local / MacGPG2 / bin / gpg2
我可以执行以下操作:
git config --global commit.gpgsign false
但这无法解决问题,我仍然无法签署我的git commit
。
让我感到困惑和沮丧的是,它按照 Github的官方指南中概述的步骤进行了设置之后,在我的第一个git commit
期间起作用。我不确定从那以后我做了什么,所以它不再起作用。我试图回溯并清除所有更改,但到目前为止,我仍然无法解决此问题。
任何帮助和指导将不胜感激。谢谢!
出于好奇,我尝试通过 Terminal 使用其他本地仓库进行git commit
。提交顺利进行,当我检查 Github 时,该签名已签名并已验证。我做了进一步的测试,以通过 GitHub Desktop 和 Atom 进行提交和签名,一切正常,没有任何问题。这是个好消息,给了我希望。但是,我仍然不知道为什么git commit
在我正在测试的一个仓库上而不是在另一个仓库上工作。我正在测试的原始存储库仍然无法git commit
,并且给出了与我上面详细描述的相同的错误消息...我想知道是哪里错了?
我正在运行以下内容:
答案 0 :(得分:0)
经过测试,由于问题似乎仅在我本地git仓库的一个上,而不是在其他任何本地git仓库的问题上,我得出结论,总体而言, Git GitHub Desktop , Atom 和 GPG签名都可以正常工作,并且该问题特定于该本地git存储库。
尽管我已尽力而为,但仍然没有确切地发现有问题的git repo出了什么问题,并且因为我似乎没有从 Stack Overflow 获得任何其他潜在客户/解决方案,所以我决定执行以下操作:
git clone
上通过 Terminal进行了git commit
和 GPG签名 的重做测试 / strong>, GitHub Desktop 和 Atom 。我想我可能永远都不知道真正发生了什么,但是我很高兴确认至少一切都可以正常工作。 谢谢@ bk2204