【问题标题】:Error with git commits: 'gpg-agent' is older than us (2.0.30 < 2.1.20)git 提交错误:'gpg-agent' 比我们老 (2.0.30 < 2.1.20)
【发布时间】:2017-05-10 18:02:38
【问题描述】:

我将如何解决这个问题?

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

【问题讨论】:

  • 看起来brew reinstall gpg-agent 可能已经解决了。

标签: git gnupg


【解决方案1】:

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

解决办法就是杀了他。 Gpg 会重新启动它,这次是正确的。

【讨论】:

    【解决方案2】:

    gpg-agent 2.0.30 版本在 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
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        TLDR:您可以在命令行旁边使用 git GUI,两者都使用自己的 gpg-agent 版本。

        更多

        我也遇到了这个问题。所以我会用我自己的经验来更新这个问题。

        我使用两种方法向我的仓库提交。

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

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

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

        如果 GUI 有旧版本的 gpg-agent,并且我使用它首先提交,那么当我尝试通过命令行提交时会遇到这个问题。

        【讨论】:

          【解决方案5】:

          您实际上收到的是警告,而不是错误。如果您不想看到此警告,可以通过管道将其删除。

          git push 2>/dev/null
          

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-10-07
            • 2021-05-12
            • 2016-08-19
            • 2022-12-28
            • 1970-01-01
            • 2016-10-12
            • 1970-01-01
            相关资源
            最近更新 更多