Git签名提交 - 如何压制"你需要一个密码来解锁密钥......"

时间:2016-06-11 11:24:55

标签: git gnupg git-commit

我更改了我的全局Git配置以签署所有提交。我也使用gpg-agent,因此我不必每次都输入密码。

现在每次进行新的提交时,我都会在控制台上看到以下五行:

[blank line]
You need a passphrase to unlock the secret key for
user: "John Doe <mail@gmail.com>"
2048-bit RSA key, ID ABCDEF12, created 2016-01-01
[blank line]

更糟糕的是,当我执行一个简单的存储时,此消息将被打印两次,不必要地填充我的控制台(我假设为创建的两个提交对象中的每一个提供一个)。

有没有办法抑制这个输出?

2 个答案:

答案 0 :(得分:23)

这是gpg配置问题,而不是git配置问题。

由于您使用的是代理,因此可以将CGRect作为解决方法添加到no-tty

gpg.conf

(这似乎是working even better than the --batch option

答案 1 :(得分:3)

对于version 1.8.3.1上的Git Fedora 25,接受的答案对我不起作用。

什么有用?

  1. 检查gpg-agent是否正在运行 $ gpg-agent

  2. 确保gpg-agent在缓存中包含您的密码。要确保它在那里,请在当前目录中签名任何文件。如果密码短语不在缓存中,则会立即询问 $ gpg -s any-file.txt

  3. 不要忘记删除新生成的签名any-file.txt.gpg
    $ rm any-file.txt.gpg

  4. 现在,通过从gpg-agent获取所需的密码,现在可以使用Git进行签名提交。
    $ git commit -S -m 'my commit message'