【发布时间】:2017-01-22 12:10:26
【问题描述】:
我在Git 2.10 发行说明上关注了几篇关于pretty 属性的文章。通过将 git 升级到 2.10.0 并对全局 .gitconfig 进行更改,结果如下 -
[filter "lfs"]
clean = git-lfs clean %f
smudge = git-lfs smudge %f
required = true
[user]
name = xyz
email = abc.def@gmail.com
signingkey = AAAAAAA
[core]
excludesfile = /Users/xyz/.gitignore_global
editor = 'subl' --wait
[difftool "sourcetree"]
cmd = opendiff \"$LOCAL\" \"$REMOTE\"
path =
[mergetool "sourcetree"]
cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
trustExitCode = true
[alias]
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
[color "diff"]
old = red strike
new = green italic
但现在我尝试使用
签署我的提交git commit -a -S -m "message"
我看到以下错误 -
您需要一个密码来解锁
的密钥用户:“XYZ(数字签名)”
2048 位 RSA 密钥,ID AAAAAAAA,创建于 2016-07-01
错误:gpg 未能签署数据致命:未能写入提交 对象
注意 - 我仍然可以使用 git commit -a -m "message"
有没有办法克服同样的问题?或者gpg configs 需要进行任何更改以配合 git 的升级?
更新 1
还寻求进一步的用处,关注Is there a way to "autosign" commits in Git with a GPG key?。我已经使用
配置了密钥git config --global user.signingkey ED5CDE14(with my key)
git config --global commit.gpgsign true
而且很明显还是会遇到同样的错误。
【问题讨论】:
-
我面临类似的问题。我在 Windows 上卸载了 Git 2.8 (git-scm)。并安装了2.10。现在我每次使用
-S都会得到gpg failed to sign the data。在 2.8 中,我可以毫无问题地签署提交。我不知道会发生什么。 -
添加
user.signingkey解决了我的问题,很奇怪。 -
具有讽刺意味的是,我改变了我的机器以重新设置东西并最终寻找我自己的问题,并且建议的解决方案对我来说都不够干净,无法简单地开始。
-
试试
gpgconf --kill gpg-agentas discussed here -
确保
git config --get-all user.name和git config --get-all user.email与签名使用的key相同,可以通过gpg -K --keyid-format SHORT查看
标签: git github gpg-signature