为什么SourceTree中的GnuPG签名复选框被禁用?

39

示例截图

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

4个回答

54

你可能没有将GPG程序设置(在SourceTree -> 首选项 -> 高级中找到)指向正确的二进制文件。如果你在OS X上使用GPGTools,应该是/usr/local/MacGPG2/bin要在打开文件对话框中导航到/usr/bin目录, 点击shift + command + g

SourceTree setting


2
澄清一下,“GPG程序:” 应该指向 MacGPG 的 bin 目录,而不是 gpg 二进制文件本身。 - tixastronauta
3
我使用Homebrew安装了gpg2,并在我的git配置中设置了它(git config --global gpg.program gpg2)。在SourceTree中,我需要在GPG程序字段中指定/usr/local/bin - andrhamm
29
针对在 OSX 上使用 brew install gnupg 的用户,请尝试通过执行命令 ls -la /usr/local/bin/gpg 查找 gpg 的位置,您将会看到版本号是 ../Cellar/gnupg/2.2.6/bin/。然后打开终端并前往 /usr/local/Cellar/gnupg/2.2.6/bin/ 目录,接着通过执行命令 ln -s gpg gpg2 来创建一个快捷方式。最后,进入 SourceTree -> Preferences 页面,并将 GPG 程序位置设置为 /usr/local/Cellar/gnupg/2.2.6/bin,这样就可以正常使用了。 - chakming
1
在 SourceTree 2.7.1 中,此设置位于 SourceTree > 偏好设置 > 高级选项卡中。 - Mark Moeykens
1
@StackFlowed,我更新了答案,展示了最新版本的正确操作步骤。 - techpeace
显示剩余4条评论

7
自SourceTree 1.8.1版本以来,如果在启动SourceTree时没有GPG密钥,则该复选框也将被禁用。在SourceTree仍在运行时创建您的第一个GPG密钥是无济于事的。你需要重新启动SourceTree才能注意到你现在拥有GPG密钥。
参考: https://jira.atlassian.com/browse/SRCTREE-1835

1
我已经重新启动了,但仍然是一样的。 - Hiren Patel
谢谢,这就是我的问题。 - Mostafa Sultan

1

设置Sourcetree使用GPG签名:

  • 安装gnupg: brew install gnupg
    • 我发现gnupg已经安装在/opt/homebrew/Cellar/gnupg/2.3.6/bin(注意你的版本号可能不同)
  • 运行命令ln -s gpg gpg2 (参考另一个回答的评论)
  • 进入Sourcetree首选项 (Command + , > 高级 > GPG程序)
    • 按下Shift + Command + G,并粘贴先前的路径:/opt/homebrew/Cellar/gnupg/2.3.6/bin
在 SourceTree 的 Mac 菜单栏中,选择 Repository > Repository settings > Security 选项卡,在其中勾选复选框:启用 GPG 密钥签名以进行提交

1
虽然techpeace的回答似乎已经解决了BJ Myers的问题,但仍有可能出现选项保持灰色的情况,即使已经更正了设置。
如果您的密钥环已经存在一段时间(在我的情况下接近20年),则有可能在信任数据库的某个角落或另一个角落积累了一些垃圾。棘手的部分是,在大多数情况下,这并没有以明显的方式显示出来,即您仍然可以很好地签名、验证、加密和解密内容。只是偶尔会出现一些虚假的keyid_from_fingerprint: no pubkeypublic key of ultimately trusted key 00000000 not found(通常在使用某些密钥环管理前端时)。
而这种信任数据库不一致性就是阻止SourceTree在我这种情况下启用提交签名选项的原因。
解决方案很简单;只需按照Spike的清除trustdb中00000000密钥的说明进行操作。Spike谈到了一个00000000条目,但在我的情况下有几个。只需将它们全部删除。少于5分钟即可完成,效果很好。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接