git commit - gpg 无法签署数据,但可以从控制台工作

git commit - gpg failed to sign the data, but works from console

我知道有很多类似的问题,但基本上,git commit 给了我

error: gpg failed to sign the data
fatal: failed to write commit object

但是,感谢 ,我可以先在命令行中通过 gpg 签署一个随机文件来签署提交。这有效,但很烦人。为什么我必须这样做?

我正在使用 Manjaro KDE。

您可能希望使用

为 Git 指定 GPG 程序
git config --global gpg.program gpg2

并为所有提交启用签名(否则,将 -s 添加到每个 Git 命令)

git config --global commit.gpgsign true

使用gpg --list-keys找到你的密钥并在Git中指定使用这个密钥:

git config --global user.signingkey <Your GPG Key>

当你执行 git commit.

时,GPG 会要求输入密码

参考:https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work

感谢 Alvin Tang 给我如此简单的解决方案!

我只需要添加这两行:

GPG_TTY=$(tty)
export GPG_TTY

位于文件底部 ~/.bashrc