【问题标题】:Can’t commit and push in Git because “cannot spawn gpg2: No such file or directory”无法提交和推送 Git,因为“无法生成 gpg2:没有这样的文件或目录”
【发布时间】:2020-02-08 20:38:47
【问题描述】:

每当我尝试通过命令行提交更改时,我都会收到以下错误消息:

error: cannot spawn gpg2: No such file or directory

更新: 我正在运行 Windows 10

【问题讨论】:

    标签: git git-commit gnupg


    【解决方案1】:

    (在 Windows 10 中使用 Github 桌面)

    在下面的链接中创建新的 gpg 后,(我想签署我的提交)

    https://gist.github.com/BoGnY/f9b1be6393234537c3e247f33e74094a

    在命令中,我可以使用git commit 而不会出现任何错误。

    但在桌面应用程序中,我遇到了同样的错误,设置 gpg 路径对我有用。 (通过应用验证提交)

    where gpg
    

    它会给出类似“C:\Program Files\Git\usr\bin\gpg.exe”的东西

    使用 git bash,试试这个命令

    git config --global gpg.program "/c/Program Files/Git/usr/bin/gpg.exe"
    

    【讨论】:

      【解决方案2】:

      默认情况下,用于签署提交的程序是gpg。在您的系统上,它已配置为 gpg2

      通常,仅当您使用-S 指定它们或将commit.gpgsign 设置为true 时才会生成签名提交,在这种情况下,所有提交都已签名。如果您想继续签署提交,您可以通过运行git config --global gpg.program gpg 更改用于签署提交的二进制文件,假设您的系统上存在gpg。 (您可以通过运行command -v gpg 来检查它是否提供任何输出。)

      如果您的系统上不存在gpg,您可以从系统包管理器中安装它。通常包的名称是gnupg,但它可能会有所不同。您尚未说明您使用的是什么操作系统,因此我们无法为您提供更具体的信息。

      如果您不想对提交进行签名,则可以运行 git config --unset-all commit.gpgsign,签名将默认禁用。

      【讨论】:

        【解决方案3】:

        您可以通过将 commit.gpgsign 设置为 false 来禁用 Git 中的 GPG 提交签名:

        git config --global commit.gpgsign false
        

        【讨论】:

        • 我们可以禁用 GPG 签名,是的。但这不是解决这个问题的好方法。
        • @Ishan OP 从未说过他们想要 GPG 签名。这是一个解决方案,即使它不是你想要的。
        猜你喜欢
        • 2021-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多