在我更改本地存储库上的一些文件后,我想将这些文件提交给我的GitHub代表每次出现此错误时,我不知道如何修复它。我试图卸载VSCode和Git在我的电脑上,改变什么。
错误:不能生成gpg2:没有这样的文件或目录错误:GPG签名数据失败Fatal:写提交对象失败
您选择在每次提交时使用gpg2
对进行签名。Git本身从不做任何身份验证,当你告诉它你是Fred Astaire或Ginger Rogers或任何你想自称的人时,它只是相信你。
签署每一个提交:那些有权访问数字签名验证软件的人可以放心,你确实是Fred Rogers,或Ginger Astaire,或任何人。
签名标签:那些可以访问数字签名验证软件的人可以告诉你,无论签名验证你是谁,已经同意这个特定的标签代表了软件的一个好版本。
因为提交形成了一个Merkle树,所以对标签进行签名与";1
如果选择对每个提交或某些标签进行数字签名,您必须提供能够执行此操作的数字签名软件。Git没有附带PGP或GPG。不过,它们很容易买到。你可能需要配置Git;查看gpg failed to sign the data fatal: failed to write commit object [Git 2.10.0]了解更多详细信息。
1更准确地说,它是Merkle树中的加密哈希可以验证的。由于Git的功能有点弱,所以这不如对每个提交都签名好。然而,SHA-1的弱点,至少就目前所知,并没有那么大,所以对提交链的任何攻击都是显而易见的。