尝试使用 GitHub Desktop 提交我的更改并获取以下内容:
错误:无法运行 gpg:没有这样的文件或目录
错误:无法运行 gpg。
致命:写入提交对象失败 (128)
首先,这对终端也不起作用,我创建了 gpg-key 并插入到我的 GitHub 帐户 现在它在终端中运行良好,但桌面版本仍然无法运行。
在 GitHub Desktop 的官方文档中我发现了一些符号:
注意:GitHub Desktop 不支持 GPG 签名。
解决了。
因此,当 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
它与提交签名有关(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
希望它对某人有帮助。
适用于 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
VSCode 用户的解决方案:
在设置下搜索 GPG 并取消选中它:
现在,为什么要取消选中它?
仅当使用 Gnu Privacy Guard 时才需要此扩展。如果您 不知道它是什么,那么您绝对不必担心。
但是,如果您想知道发生了什么,请查看: https://www.gnupg.org/