初始步骤和问题
我在我的 Mac 上安装了Git ,然后尝试按照Github中概述的步骤设置GPG签名验证。
第一次git commit
通过 Mac OS终端进行测试时,我被要求输入密码,并且提交已正确签名并推送。没问题。
然后我通过Atom编辑器测试了签名验证。然而,这一次,git commit
签约失败了。
寻找解决方案和其他问题的初步尝试
我尝试在Stack Overflow和GitHub上寻找解决方案,但无法找到任何可行的方法,尽管我确实尝试了一些建议。
不幸的是,现在尝试git commit
通过终端时,我收到以下错误消息:
错误:无法运行 --version:没有这样
的文件或目录错误:gpg 未能签署数据
致命:未能写入提交对象
我花了几天时间试图在网上找到解决方案,但没有成功。
我不明白错误消息的第一行(cannot run --version: no such file or directory)并且无法在线找到类似的问题。
寻找解决方案的进一步尝试和试验
在过去的几天里,我根据以下网站的建议尝试了很多东西:
- gpg 未能签署数据致命:未能写入提交对象
- Mac 上的 Git Hub 桌面,错误:无法运行 gpg:没有这样的文件或目录
- 在 OSX 上使用 GPG 自动进行 Git 提交签名
- 如何设置 git 以使用 GPG 套件
我还做了以下事情:
- 通过GitKraken测试 GPG 签名,没有任何问题。
- 用GitHub Desktop测试,出现如下错误:
错误:提交失败 - 收到退出代码 128,输出:
'错误:gpg 无法签署数据致命:无法写入提交对象' - 用Atom编辑器测试并得到以下错误:
无法提交。错误:gpg 未能签署数据致命:未能写入提交对象
- 卸载GnuPG并通过Homebrew重新安装。
- 最后我什至尝试安装 GPGTools 的GPGSuite。
不幸的是,问题仍然存在,我不再知道该尝试什么。
我得到的输出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
中概述的步骤设置完所有内容后,它在我第一次工作时就起作用了。我不确定从那以后我做了什么,所以它不再起作用。我试图回溯并删除任何更改,但到目前为止我仍然无法解决此问题。
任何帮助和指导将不胜感激。谢谢!
更新 1
出于好奇,我尝试使用不同的本地回购git commit
通过终端进行。提交顺利进行,当我在Github上检查时,它已签名并验证。我做了进一步的测试,通过GitHub Desktop和Atom提交和签名,一切正常,没有任何问题。这是个好消息,给了我希望。但是,我仍然不知道为什么git commit
在一个 repo 上工作,而不是在我正在测试的另一个 repo 上工作。我正在测试的原始仓库仍然不能git commit
,并且给出了我上面详述的相同错误消息......我想知道有什么问题吗?
附加信息
我正在运行以下内容:
- macOS 10.14.4
- 混帐 2.21.0
- gpg (GnuPG) 2.2.15