我将如何解决这个问题?
gpg: WARNING: server 'gpg-agent' is older than us (2.0.30 < 2.1.20)
答案 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
答案 4 :(得分:0)
TLDR::您可能在命令行旁边使用了git GUI,它们都使用自己的gpg-agent
版本。
我也刚遇到这个问题。因此,我将根据自己的经验来回答这个问题。
我使用两种方法对仓库进行提交。
gpg-agent
。gpg-agent
。在以下情况下显示'gpg-agent' is older than us
警告。
gpg-agent
版本较旧,然后在命令行中使用。如果GUI的版本为gpg-agent
,并且我先 进行提交,那么当我尝试通过命令行进行提交时,就会遇到这个问题。