为什么在我没有配置签名时源代码树会查找 gpg 密钥?

why does source tree look for gpg keys while I haven't configured for signing?

我在 mac 上下载了 sourcetree app 并向其添加了本地 git 存储库。每当我尝试隐藏或提交某些内容时,sourcetree 都会抛出与 gpg 相关的错误。错误示例如下。

git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree stash save test-stash 
/Applications/SourceTree.app/Contents/Resources/bin/gpg: line 2: gpg2: command not found
error: gpg failed to sign the data
Cannot save the current index state
Completed with errors, see above

我无法找出此错误的原因。据我所知,我还没有为任何类型的签名配置项目或 sourcetree 应用程序。

如果你能帮我解决这个问题,那将是很大的帮助。

经过几次尝试,发现以下说明有所帮助: https://confluence.atlassian.com/sourcetreekb/setup-gpg-to-sign-commits-within-sourcetree-765397791.html

问题是安装了全新的 El Capitan 和 Source Tree,似乎没有 gpg 二进制文件。

以上文章介绍了下载 Mac GPG 工具以及如何设置它的步骤。

关键是配置 SourceTree 以显式签署提交,否则,它会尝试使用系统 git 首选项,这会以某种方式产生另一个问题,如下所述:https://confluence.atlassian.com/sourcetreekb/sourcetree-commits-fail-when-using-git-signed-commits-794199810.html

即使我尝试从命令行提交,它也会要求提供 gpg 密钥。

在互联网上进行了大量搜索后,我找到了根本原因。这是由于其中一个点文件将 ~/.gitconfig 中用于签署提交的全局配置设置为 true。因此,我使用以下命令将配置设置回 false。

$ git config --global commit.gpgsign false

呸!问题现已解决...