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



初始步骤和问题


我在我的Mac上安装了 git ,然后尝试设置 gpg 签名验证,然后按照 github 中的步骤。。

我第一次通过MAC OS 终端进行测试git commit 我被请求我的密码,并正确签名并推动了提示。没有问题。

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

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


我尝试在 stack Overflow github 上寻找解决方案,但尽管我确实尝试了提出的一些建议,但仍无法找到任何有效的建议。

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

错误:无法运行 - version:没有这样的文件或目录
错误:GPG无法签署数据
致命:未能写入提交对象

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

我不了解错误消息的第一行(无法运行 - version:没有这样的文件或目录(,也找不到类似的在线发行。

进一步尝试寻找解决方案


在过去的几天中,我根据以下网站的建议尝试了很多事情:

  • GPG无法签署数据致命:未能写入提交对象
  • Mac上的Git Hub桌面,错误:无法运行GPG:没有此类文件或目录
  • 自动GIT提交与OSX上的GPG签名
  • 如何设置GPG套件

我也完成了以下操作:

  • 通过 GITKRAKEN 测试的GPG签名无问题的工作。
  • 使用 github桌面进行了测试,并有以下错误:

    错误:提交失败 - 退出代码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

令我感到困惑和沮丧的是,它在我的第一个git commit中起作用,遵循 github的官方指南中概述的步骤。从那以后,我不确定自己做了什么,因此它不再起作用。我试图回到轨道并删除任何更改,但是到目前为止,我仍然无法解决此问题。

任何帮助和指导将不胜感激。谢谢!

更新1


出于好奇,我尝试通过终端使用不同的本地回购进行git commit。该提交没有小故障进行,当我检查 github 时,它已签名并进行了验证。我进行了进一步的测试以通过 github桌面 atom 进行提交和签名,一切正常,没有任何问题。这是个好消息,给了我希望。但是,我仍然不知道为什么git commit在一个仓库中工作,而不是我正在测试的另一个仓库。我正在测试的原始仓库仍然无法git commit,并给出了我上面详细介绍的相同错误消息...我想知道怎么了?

其他信息


我正在运行以下内容:

  • MACOS 10.14.4
  • git 2.21.0
  • gpg(gnupg(2.2.15

更新2和解决方案

测试后,由于该问题似乎仅在我本地git存储库的一个上,而不是在任何其他本地git存储库上 github桌面 atom gpg签名都可以正常工作,并且问题特定于一个本地的Git Repo。

尽管我已经尽力了,但仍然找不到越野车git repo的问题,因为我似乎没有从 stack Overflow 中获得任何其他潜在客户/解决方案进行以下操作:

  • delete 我的本地git repo 有问题。
  • reclone 来自远程repo
  • 成功进行git clone git commit gpg签名 通过终端 github桌面 atom
  • 现在所有人都可以正常工作。

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

相关内容

最新更新