如何在我不是所有者的 Github 存储库中签署我的提交?

How to sign my commits to Github repository where I am not the owner?

我正在尝试在我关联的所有 Github 存储库中签署我的提交。当存储库由我托管时我可以签名,但当我只是贡献者时我不能签名。每次尝试这样做时,我都会收到下面提到的错误。

could not find identity matching specified user-id: <key id>
error: gpg failed to sign the data
fatal: failed to write commit object

下面是我的 .gitconfig 设置

[core]
        editor = \"C:\Users\user\AppData\Local\Programs\Microsoft VS Cod>
[user]
        email = <my email id>
        name = <my name>
        signingkey = <key id>
[commit]
        gpgsign = false
[gpg]
        program = gpg

非常感谢您的小小帮助。

Github 与您在本地存储库副本上签名的内容无关。根据错误消息,我假设您没有提供密钥 ID,因此 git 使用了您的提交者身份,该身份在 gpg 密钥库中没有对应的密钥。也许 user.nameuser.email 配置值设置不正确。

  • 您可以检查值以及全局配置是否未被本地设置意外覆盖:

    git config --show-origin user.name
    git config --show-origin user.email
    

    值应与 gpg --list-secret-keys.

  • 输出中的键匹配
  • 验证 gpg.programgpg.format 是否未设置。

  • 如果设置了user.signingKey,检查是否正确。
  • 或者只比较两个 repos 的 git config --list 的输出。

尝试清除 git 缓存或从您的电脑中删除存储库并重新克隆它并尝试签署您的下一次提交。让我知道它是否有效。