Git 为什么在SourceTree中禁用GnuPG符号复选框?

Git 为什么在SourceTree中禁用GnuPG符号复选框?,git,gnupg,atlassian-sourcetree,Git,Gnupg,Atlassian Sourcetree,使用Mac OS X Yosemite(10.10),我无法在SourceTree中激活提交的GnuPG签名,因为该复选框已禁用。如何启用提交签名?您可能没有将GPG程序设置(在SourceTree->Preferences->Advanced中找到)指向正确的位置。如果您在OS X上使用GPGTools,它应该是/usr/local/MacGPG2/bin,单击shift+command+g 自SourceTree版本1.8.1以来,如果在SourceTree启动时没有GPG键,则该复选框也将


使用Mac OS X Yosemite(10.10),我无法在SourceTree中激活提交的GnuPG签名,因为该复选框已禁用。如何启用提交签名?

您可能没有将GPG程序设置(在SourceTree->Preferences->Advanced中找到)指向正确的位置。如果您在OS X上使用GPGTools,它应该是
/usr/local/MacGPG2/bin
,单击shift+command+g


自SourceTree版本1.8.1以来,如果在SourceTree启动时没有GPG键,则该复选框也将被禁用。在SourceTree仍在运行时创建第一个GPG密钥不会有帮助。您需要重新启动SourceTree,以便它注意到您现在拥有GPG密钥


参考资料:

尽管techpeace的答案似乎已经解决了BJ Myers的问题,但还有另一个可能的原因,即尽管更正了设置,该选项仍保持灰色

如果你的钥匙圈已经存在了一段时间(在我的例子中是近20年),很可能是一些碎片堆积在信任数据库的某个角落。棘手的一点是,在大多数情况下,这不会以明显的方式显示出来,也就是说,您仍然可以对内容进行签名、验证、加密和解密。只是指纹中的伪
keyid\u:找不到最终受信任密钥00000000的公钥
公钥(通常在使用某个密钥管理前端时出现)

在我的例子中,这种trustdb的不一致性阻止了SourceTree启用提交签名选项


解决办法很简单;简单地跟随。Spike说有一个00000000条目,但就我而言,有几个条目。把它们都拿走。只需不到5分钟,而且工作起来很有魅力。

为了澄清,
GPG程序:
应该指向MacGPGs的bin目录,而不是
GPG
binary-itself我用自制软件安装了gpg2,并将其设置在我的git配置中(
git-config--global-GPG.Program gpg2
)。在SourceTree中,我必须在GPG程序字段中指定
/usr/local/bin
。对于使用OSX和
brew安装gnupg
的任何人,请尝试通过
ls-la/usr/local/bin/GPG
定位gng,您将看到版本:
。/cillar/gnupg/2.2.6/bin/
,然后打开终端并转到
/usr/local/cillar/gnupg/2.2.6/bin//code>,然后通过
ln-s gpg gpg2
创建一个快捷方式。转到SourceTree->Preferences并使用
/usr/local/ceral/gnupg/2.2.6/bin
作为GPG程序位置,然后在SourceTree 2.7.1中一切正常,此设置位于SourceTree>Preferences>Advanced选项卡中。@StackFlowed我更新了答案,显示了最新版本的正确过程。我已重新启动,但仍然相同