目前(2018 年 2 月 13 日)Sourcetree 仅支持Mac 版本的提交签名。
从这个问题(自 2013 年起)提交签名在 Windows 版本中仍然不可用。
那么是否可以在 Windows 版本的 sourcetree 中签署提交?
目前(2018 年 2 月 13 日)Sourcetree 仅支持Mac 版本的提交签名。
从这个问题(自 2013 年起)提交签名在 Windows 版本中仍然不可用。
那么是否可以在 Windows 版本的 sourcetree 中签署提交?
我遇到了类似的问题,我按照@theminer3746 的回答进行了设置。
我能够修复 no tty 错误并使用以下步骤有一个对话框输入密码
([Your homedir]/.gnupg/secring.gpg)
git config --global gpg.program "c:\Program Files (x86)\GnuPG\bin\gpg.exe"
嗯,答案是肯定的和否定的。
我想出的解决方法如下(我假设你已经设置了 GPG 密钥,如果没有遵循github 的关于如何设置它的教程)
(如果你还没有)
按ctrl+,
转到 git 选项卡并单击Use System Git
terminal
从 powershell (或者您可以使用源树中图标的内置终端)。
输入git config commit.gpgsign true
- 这将配置 git 以自动签署CURRENT 存储库中的所有提交。
如果您想签署每个存储库中的每个提交,请改用git config --global commit.gpgsign true
。
注意如果您选择跳过第 3 步,请确保-S
每次提交时都添加 ( git commit -S
) 否则您的提交将不会被签名。
当然这种方式有一个缺点。
每次你提交。您必须在终端中执行此操作。如果您尝试使用 sourcetree 的提交按钮进行提交,则会发生错误
gpg: cannot open tty `no tty': No such file or directory
error: gpg failed to sign the data
fatal: failed to write commit object
除此之外,您可以像往常一样使用 sourcetree 的所有其他功能(推送、拉取、获取、合并等)。
编辑:这个缺点已经被艾哈迈德的回答解决了。
如果您还没有创建 GPG 密钥,请前往 github 关于 GPG 密钥的教程。
打开 Sourcetree 并单击右上角的终端按钮。 单击终端图标 (我没有足够的声望点来发布图像。当我获得足够的声望点时我会更新图像:))。
输入以下命令
$ git config commit.gpgsign true
您需要拥有 GPG 签名密钥才能对提交进行签名。使用以下命令检查现有密钥
$ gpg --list-secret-keys --keyid-format LONG
例如,如果您的输出是
/Users/hubot/.gnupg/secring.gpg
------------------------------------
sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
uid Hubot
ssb 4096R/42B317FD4BA89E7A 2016-03-10
3AA5C34371567BD2是您的签名密钥。
然后,执行以下命令
$ git config commit.signingkey YOUR_KEY_HERE
如果要对每个存储库进行签名,--global
请在上述命令中添加一个标志。例如,
$ git config --global commit.gpgsign true
$ git config --global commit.signingkey YOUR_KEY_HERE
无需下载任何其他软件来签署您的提交。
打开存储库的 .git 文件夹中的配置文件。并添加/更新以下选项。
[commit]
gpgsign = true
signingkey = YOUR_KEY_HERE
更新上述选项后尝试提交。