在Git提交GPG签名期间,如何解决“无法运行--version:无此文件或目录”错误

时间:2019-05-05 07:06:35

标签: git github atom-editor gnupg gpg-signature

初始步骤和问题


我在Mac上安装了Git,然后尝试按照Github中概述的步骤来设置 GPG 签名验证。

我第一次通过Mac OS 终端进行测试git commit时,系统要求我输入密码,并正确签署并推送了提交。没问题。

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

最初尝试找到解决方案和其他问题


我尝试在 Stack Overflow GitHub 上寻找解决方案,但是尽管我确实尝试了一些建议,但找不到有效的解决方案。

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

  

错误:无法运行--version:没有此类文件或目录
  错误:gpg无法对数据签名
  致命:无法写入提交对象

我花了几天时间尝试在线查找解决方案,但没有成功。

我不明白错误消息的第一行( 无法运行--version:没有这样的文件或目录 ),并且无法找到类似的内容在线发行。

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


最近几天,我根据以下网站的建议尝试了很多事情:

我还做了以下事情:

  • 已通过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


出于好奇,我尝试通过 Terminal 使用其他本地仓库进行git commit。提交顺利进行,当我检查 Github 时,该签名已签名并已验证。我做了进一步的测试,以通过 GitHub Desktop Atom 进行提交和签名,一切正常,没有任何问题。这是个好消息,给了我希望。但是,我仍然不知道为什么git commit在我正在测试的一个仓库上而不是在另一个仓库上工作。我正在测试的原始存储库仍然无法git commit,并且给出了与我上面详细描述的相同的错误消息...我想知道是哪里错了?

其他信息


我正在运行以下内容:

  • macOS 10.14.4
  • git 2.21.0
  • gpg(GnuPG)2.2.15

1 个答案:

答案 0 :(得分:0)

更新2和解决方案

经过测试,由于问题似乎仅在我本地git仓库的一个上,而不是在其他任何本地git仓库的问题上,我得出结论,总体而言, Git GitHub Desktop Atom GPG签名都可以正常工作,并且该问题特定于该本地git存储库。

尽管我已尽力而为,但仍然没有确切地发现有问题的git repo出了什么问题,并且因为我似乎没有从 Stack Overflow 获得任何其他潜在客户/解决方案,所以我决定执行以下操作:

  • 删除 出现问题的我的本地git repo
  • 远程回购
  • 克隆
  • git clone上通过 Terminal进行了git commit GPG签名 重做测试 / strong>, GitHub Desktop Atom
  • 现在一切正常。

我想我可能永远都不知道真正发生了什么,但是我很高兴确认至少一切都可以正常工作。 谢谢@ bk2204