试图通过使用 GitHub 桌面提交我的更改,得到如下结果:
错误: 不能运行 gpg: 没有这样的文件或目录 无法运行 gpg。 未能写入提交对象 (128)
错误: 不能运行 gpg: 没有这样的文件或目录
无法运行 gpg。
未能写入提交对象 (128)
首先,在终端上也不起作用,我创建了 gpg-key 并插入到我的 GitHub 帐户中 现在,它的工作在终端,但桌面版本仍然无法工作。
在 GitHub 桌面的官方文档中,我发现了一些注释: 注意: GitHub 桌面不支持 GPG 签名。
在 GitHub 桌面的官方文档中,我发现了一些注释:
注意: GitHub 桌面不支持 GPG 签名。
解决了。
因此,当 GitHub 桌面抱怨找不到 gpg 时(我是通过自制程序安装的) ,我认为应该有一种方法来告诉 git gpg 的确切路径,结果是:
Gpg.program 在制作或验证 PGP 签名时,使用这个自定义程序而不是在 $PATH 上找到的“ gpg”。该程序必须支持与 gPG 相同的命令行界面,即验证一个分离的签名,运行“ GPG ——验证 $file-< $sign”,程序预计通过代码0退出来发出一个良好的签名信号,并生成一个 ASCII 装甲分离的签名,“ GPG-bsau $key”的标准输入被提供要签名的内容,程序预计将结果发送到其标准输出。 Https://git-scm.com/docs/git-config
运行以下命令解决了这个问题:
git config --global gpg.program "$(which gpg)"
GitHub 回复我说,一些用户还需要使用:
echo "no-tty" >> ~/.gnupg/gpg.conf
它与 提交签名(https://help.github.com/en/articles/signing-commits)有关。
如果你使用 Github Desktop (它不支持上面链接的文章开头部分突出显示的 提交签名) ,或者你不需要 提交签名(或者甚至不知道它是什么) ,你可以做的一件事就是通过运行像 git config --global commit.gpgsign false这样的命令来禁用 Gpg 提交签名,或者手动编辑你的 .git/config文件:
git config --global commit.gpgsign false
.git/config
[commit] # https://help.github.com/articles/signing-commits-using-gpg/ gpgsign = false
希望能帮到别人。
VSCODE 用户的解决方案:
在设置项下搜索 GPG 并取消选中:
你为什么要取消检查?
只有在使用 GnuPG 时才需要这个分机。如果你不知道它是什么,那么你肯定不需要担心它。
然而,为了以防万一你想知道正在发生什么,检查: Https://www.gnupg.org/
为 Mac 和 gpg2安装
git config --global gpg.program $(which gpg2)
这对我有用。
在上面的命令之后,. gitconfig 应该如下所示
[user] email = yogesh.jadhav@xxx.com.au name = jadhavy signingkey = xxx [credential] helper = osxkeychain [gpg] program = /usr/local/MacGPG2/bin/gpg2 [commit] gpgsign = true [core] autocrlf = input