git提交错误:&#39; gpg-agent&#39;比我们年长(2.0.30 <2.1.20)

时间:2017-05-10 18:02:38

标签: git gnupg

我将如何解决这个问题?

gpg: WARNING: server 'gpg-agent' is older than us (2.0.30 < 2.1.20)

5 个答案:

答案 0 :(得分:3)

版本2.0.30的gpg-agent在版本2.1.20之前的$ PATH中。 卸载gpg-agent版本2.0.30。

brew uninstall gpg-agent
Uninstalling /usr/local/Cellar/gpg-agent/2.0.30_3... (690.2KB)
which gpg-agent
/usr/local/bin/gpg-agent
gpg-agent --version
gpg-agent (GnuPG) 2.1.21

答案 1 :(得分:0)

可能的另一个原因是,您正在使用一些共享主页解决方案(例如,docker),其中您的多个虚拟环境会看到相同的主目录。

Gpg在第一次执行时启动一个守护进程,如果它还没有运行,并在~/.gnupg/S.gpg-agent上与它通信。来自不同环境的多个gpg代理可能会看到相同的套接字,因此它们会遇到不兼容的问题。解决方案:杀死不需要的gpg-agent进程。

答案 2 :(得分:0)

你也可以将你的gpg工具更新到更新版本,同时你也使用了旧版本。在这种情况下,父级gpg-agent仍保留在您的进程树中,并且已经是假的版本。

解决方案就是杀死他。 Gpg将重新启动它,这次是正确的。

答案 3 :(得分:0)

您实际上是在收到警告,而不是错误。如果你不想看到这个警告,你可以将它移除。

git push 2>/dev/null

来源:https://duckduckgo.com/?q=suppress+gpg+warnings

答案 4 :(得分:0)

TLDR::您可能在命令行旁边使用了git GUI,它们都使用自己的gpg-agent版本。

更多

我也刚遇到这个问题。因此,我将根据自己的经验来回答这个问题。

我使用两种方法对仓库进行提交。

  1. 我使用fork.dev这是一个Git GUI,它自己引用了用于管理git的工具,例如gpg-agent
  2. 我还使用命令行对git进行提交。与GUI引用的引用不同的是gpg-agent

在以下情况下显示'gpg-agent' is older than us警告。

  1. Git GUI的gpg-agent版本较旧,然后在命令行中使用。
  2. 在使用命令行之前,我使用Git GUI进行提交。

如果GUI的版本为gpg-agent,并且我先 进行提交,那么当我尝试通过命令行进行提交时,就会遇到这个问题。