我刚开始使用git,我通过自制软件安装git和gpg。 由于某种原因,当我提交git时,我得到了这个错误 我看了很多关于这个话题的stackoverflow问题,但没有一个对我有用。 如何修复此错误以成功上传?
error: gpg failed to sign the data
fatal: failed to write commit object
我刚开始使用git,我通过自制软件安装git和gpg。 由于某种原因,当我提交git时,我得到了这个错误 我看了很多关于这个话题的stackoverflow问题,但没有一个对我有用。 如何修复此错误以成功上传?
error: gpg failed to sign the data
fatal: failed to write commit object
当前回答
这将帮助你摆脱它
Git配置提交。gpgsign假
其他回答
检查你的钥匙是否过期。一旦你修复了过期日期(不需要创建一个新的密钥,除非你想),git将正常工作。
修复过期密钥的一种方法:
(注:$表示命令行提示符,在提示符后输入命令;每个命令后按Enter键)
$ gpg2—list-keys查找合适的密钥id (pub行\后的字符)
$ gpg2——edit-key <key id> -打开GPG shell,提示符更改为GPG >
Gpg > expire -按照指示设置主键的新过期日期
接下来,如果有子键过期(子键显示在行中),也重置它们的过期日期:
Gpg > key 1 -选择第一个子密钥 Gpg > expire -按照指示为子密钥设置新的过期日期
根据需要,对每个后续子键重复此操作。
我在linux/windows平台上都有这个问题,在我的情况下,我只需要更仔细地注意输出。这是令人难以置信的,因为我可以使用相同的设置在其他回购中签署提交。
git commit -m "test signing"
gpg: skipped "***63231079***": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object
我强调了“跳过”这一行。请注意,有时当你克隆一个回购时,他们会分配一个密钥:这个问题让我很困惑,以至于我破坏了我可以访问的分叉回购,并在github上重新分叉。然后因为我在想“全局配置”,我从来没有想过要看本地回购配置,当我注意到这一点:
[user]
signingkey = 63231079
嗯,当然它不会工作nimrod, git默认为本地设置,所以这就是为什么你的密钥永远不会被拾取。我通过git配置设置指针,它一直在工作。
在我的例子中,我混合了提交签名文档中给出的gpg配置和smimesign配置:https://help.github.com/en/github/authenticating-to-github/telling-git-about-your-signing-key
在工作了几个小时之后,我发现纠正它的最好方法是取消与gpg相关的所有内容,并重新配置gpg。
正如在@Jason Thrasher的回答中提到的,使用以下方法找到所有与gpg相关的git配置:
git config -l | grep gpg
然后取消所有的golable以及本地使用:
git config --global --unset <config_name>
git config --local --unset <config_name>
然后按照上面给出的官方文档重新配置。 希望这能有所帮助。
这将帮助你摆脱它
Git配置提交。gpgsign假
经过大量搜索,我发现gpg密钥是我的情况下的问题。
如果您的gpg密钥正确,您可以尝试运行gpg——status-fd=2 -bsau <您的gpg密钥>。
要更新正确的密钥,请执行以下操作: 检查密钥使用:GPG——list-secret-keys——keyid-format=long
它应该有以下输出:
/Users/hubot/.gnupg/secring.gpg
------------------------------------
sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
uid Hubot
ssb 4096R/42B317FD4BA89E7A 2016-03-10
然后更新密钥使用:
git config --global user.signingkey 3AA5C34371567BD2
现在再次检查提交,如果关键字是问题,它应该成功。您需要设置密码短语来更新密钥,您可以使用GitHub文档进行更新。
更多详情见:https://gist.github.com/paolocarrasco/18ca8fe6e63490ae1be23e84a7039374