如何在 Git 提交 GPG 签名期间修复 'cannot run --version: No such file or directory' 错误

How to fix 'cannot run --version: No such file or directory' error during Git commit GPG signing

初始步骤和问题


我安装了Git on my Mac and then tried to set up GPG signature verification by following the steps outlined in Github.

我第一次通过 Mac OS 终端 进行测试 git commit 我被要求输入我的密码并且提交是正确的签署并推动通过。没问题。

然后我通过Atom编辑器测试了签名验证。然而这一次,git commit 签名失败了。

寻找解决方案和其他问题的初步尝试


我尝试在 Stack OverflowGitHub 上寻找解决方案,但我找不到任何有效的解决方案尝试提出的一些建议。

不幸的是,现在尝试通过终端 git commit 时,我收到以下错误消息:

error: cannot run --version: No such file or directory
error: gpg failed to sign the data
fatal: failed to write commit object

我花了几天时间在网上寻找解决方案,但没有成功。

我不明白错误信息的第一行(cannot 运行 --version: no such file or directory ) 并且未能在网上找到类似的问题。

寻找解决方案的进一步尝试和试验


在过去的几天里,我根据以下网站的建议尝试了很多方法:

我还做了以下事情:

不幸的是,问题仍然存在,我不知道该尝试什么。

我为 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


出于好奇,我尝试通过 Terminal 使用不同的本地存储库执行 git commit。提交顺利完成,当我检查 Github 时,它已签名并 已验证 。我做了进一步的测试,通过 GitHub DesktopAtom 提交和签名,一切正常,没有任何问题。这是个好消息,给了我希望。但是,我仍然不知道为什么 git commit 适用于一个存储库而不适用于我正在测试的另一个存储库。我正在测试的原始回购协议仍然无法 git commit 并给出与我在上面详述的相同的错误消息...我想知道出了什么问题?

附加信息


我运行宁以下:

更新 2 和解决方案

经过测试,由于问题似乎只出现在我的本地 git 回购中的 一个 而不是任何其他本地 git 回购,我总的来说,GitGitHub DesktopAtom、和 GPG Signing 都工作正常,问题是特定于一个本地 git 存储库。

虽然我已经尽了最大努力,但仍然没有发现有问题的 git 回购到底出了什么问题,而且因为我似乎没有从 [=26] 得到任何额外的 leads/solutions =]Stack Overflow 我决定执行以下操作:

  • 删除 我的本地 git 存储库 有问题。
  • 远程仓库重新克隆
  • git clone 重做测试 git commitGPG 签名 通过 TerminalGitHub DesktopAtom
  • 现在一切正常。

我想我可能永远不知道到底发生了什么,但我很高兴确认至少一切都恢复正常。 谢谢@bk2204