3

初始步骤和问题


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

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

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

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


我尝试在Stack OverflowGitHub上寻找解决方案,但无法找到任何可行的方法,尽管我确实尝试了一些建议。

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

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

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

我不明白错误消息的第一行(cannot run --version: no such file or directory)并且无法在线找到类似的问题。

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


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

我还做了以下事情:

  • 通过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 DesktopAtom提交和签名,一切正常,没有任何问题。这是个好消息,给了我希望。但是,我仍然不知道为什么git commit在一个 repo 上工作,而不是在我正在测试的另一个 repo 上工作。我正在测试的原始仓库仍然不能git commit,并且给出了我上面详述的相同错误消息......我想知道有什么问题吗?

附加信息


我正在运行以下内容:

  • macOS 10.14.4
  • 混帐 2.21.0
  • gpg (GnuPG) 2.2.15
4

1 回答 1

1

更新 2 和解决方案

经过测试,由于问题似乎只出现在我的一个本地 git 存储库上,而没有出现在任何其他本地 git 存储库上,我得出的结论是,总体而言,GitGitHub DesktopAtomGPG 签名都工作正常并且问题是特定的到那个本地 git repo。

尽管我已经尽了最大努力,但仍然没有发现错误的 git repo 到底出了什么问题,而且因为我似乎没有从Stack Overflow获得任何额外的线索/解决方案,但我决定执行以下操作:

  • 删除有问题 的本地 git 存储库
  • 远程仓库重新克隆
  • 在通过终端GitHub 桌面Atom成功git clone 进行重做测试GPG 签名后。git commit
  • 现在一切正常。

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

于 2019-05-08T05:06:33.207 回答