目前(2018年2月13日)Sourcetree仅支持commit signing in Mac version。
来自this question(自2013年起)提交签名仍然无法在Windows版本中使用。
那么可以在Windows版的sourcetree中签名提交吗?
答案 0 :(得分:15)
我有类似的问题&我按照@theiner3746的答案来设置它。
我能够解决没有tty错误&有一个对话框,可以使用以下步骤输入密码
([Your homedir]/.gnupg/secring.gpg)
git config --global gpg.program "c:\Program Files (x86)\GnuPG\bin\gpg.exe"
答案 1 :(得分:13)
嗯,答案是肯定的,不是。
我已经想到的工作如下(我假设您已经设置了GPG密钥,如果不遵循github's tutorial on how to set it up)
(如果你还没有)
按ctrl+,
转到git标签,然后点击Use System Git
来自powershell(或者您可以使用sourcetree中terminal
图标中的内置终端)。
输入git config commit.gpgsign true
- 这将配置git以自动签署CURRENT存储库中的所有提交。
如果您想在每个存储库中对每个提交进行签名,请改为使用git config --global commit.gpgsign true
。
注意如果您选择跳过第3步,请确保每次提交时都添加-S
(git commit -S
),否则您的提交将无法签名。< / p>
<击> 撞击>
<击>当然这种方式有一个缺点。
每次你提交。你必须在终端做。如果您尝试使用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的所有其他功能(推送,拉取,获取,合并等)。
击>
编辑:这个缺点已由ahmad's answer解决。
答案 2 :(得分:0)
如果您尚未创建GPG密钥,请转到github上有关GPG密钥here的教程
打开Sourcetree,然后单击右上角的“终端”按钮。 Click on terminal icon (我没有足够的声誉点来发布图像。当我获得足够的声誉点时,我将更新图像:))。
输入以下命令
$ 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
在更新以上选项后尝试提交。