Mac 上的 Git Hub 桌面,错误:无法运行 gpg:没有这样的文件或目录

问题描述 投票:0回答:4

尝试使用 GitHub Desktop 提交我的更改并获取以下内容:

错误:无法运行 gpg:没有这样的文件或目录

错误:无法运行 gpg。

致命:写入提交对象失败 (128)

首先,这对终端也不起作用,我创建了 gpg-key 并插入到我的 GitHub 帐户 现在它在终端中运行良好,但桌面版本仍然无法运行。

在 GitHub Desktop 的官方文档中我发现了一些符号:

注意:GitHub Desktop 不支持 GPG 签名。

macos github git-commit github-for-mac
4个回答
235
投票

解决了。

因此,当 GitHub Desktop 抱怨找不到 gpg(我是通过自制程序安装的)时,我认为应该有一种方法来告诉 git gpg 的确切路径,结果是:

gpg.程序 制作或验证 PGP 签名时,请使用此自定义程序而不是 $PATH 上找到的“gpg”。该程序必须支持与 GPG 相同的命令行界面,即验证分离签名,“gpg --verify $file - <$signature" is run, and the program is expected to signal a good signature by exiting with code 0, and to generate an ASCII-armored detached signature, the standard input of "gpg -bsau $key" is fed with the contents to be signed, and the program is expected to send the result to its standard output. https://git-scm.com/docs/git-config

因此运行以下命令解决了问题:

git config --global gpg.program "$(which gpg)"

GitHub 回复我说有些用户也需要使用:

echo "no-tty" >> ~/.gnupg/gpg.conf

16
投票

它与提交签名有关(https://help.github.com/en/articles/signing-commits)。

如果您使用 Github Desktop(它不支持提交签名,如上面链接的文章开头突出显示的那样),或者如果您不需要提交签名(或者甚至不知道它是什么) ),您可以做的一件事是通过运行类似 git config --global commit.gpgsign false 的命令来禁用

gpg 提交签名
或手动编辑您的
.git/config
文件:

[commit]
  # https://help.github.com/articles/signing-commits-using-gpg/
  gpgsign = false

希望它对某人有帮助。


12
投票

适用于 Mac 并安装了 gpg2

git config --global gpg.program "$(which gpg2)"

这对我有用。

执行上述命令后,您的 .gitconfig 应如下所示

[user]
    email = [email protected]
    name = jadhavy
    signingkey = xxx
[credential]
    helper = osxkeychain
[gpg]
    program = /usr/local/MacGPG2/bin/gpg2
[commit]
    gpgsign = true
[core]
    autocrlf = input

4
投票

VSCode 用户的解决方案:

在设置下搜索 GPG 并取消选中它:

现在,为什么要取消选中它?

仅当使用 Gnu Privacy Guard 时才需要此扩展。如果您 不知道它是什么,那么您绝对不必担心。

但是,如果您想知道发生了什么,请查看: https://www.gnupg.org/

© www.soinside.com 2019 - 2024. All rights reserved.