在 windows 上使用 sourcetree 提交签名
Commit signing using sourcetree on windows
目前(2018 年 2 月 13 日)Sourcetree 仅支持 commit signing in Mac version。
从 this question 开始(自 2013 年起)提交签名在 Windows 版本中仍然不可用。
那么可以在 Windows 版本的 sourcetree 中签署提交吗?
嗯,答案是肯定的,也不是。
我想出的解决方法如下(我假设您已经设置了 GPG 密钥,如果没有,请遵循 github's tutorial on how to set it up)
第 1 步为 Windows
安装 git shell
(如果你还没有)
步骤 2 确保 sourcetree 使用系统的 git
按 ctrl+,
转到 git 选项卡并单击 Use System Git
第 3 步配置 git 以签署每个提交(可选)
来自 powershell(或者您可以使用来自 sourcetree 中 terminal
图标的内置终端)。
输入 git config commit.gpgsign true
- 这将配置 git 自动签署当前存储库 中的所有提交 。
如果你想在每个存储库中签署每个提交,请改用git config --global commit.gpgsign true
。
注意 如果您选择跳过第 3 步,请务必在每次提交 (git commit -S
) 时添加 -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 的所有其他功能(推送、拉取、获取、合并等)。
编辑:此缺点已由 解决。
我遇到了类似的问题,我按照@theminer3746 的回答进行了设置。
我能够修复 no tty 错误,并且有一个对话框可以使用以下步骤输入密码
- 安装:https://www.gpg4win.org
- 将密钥加载到 Kleopatra 程序中
([Your homedir]/.gnupg/secring.gpg)
- 运行 在您的终端中执行此命令:
git config --global gpg.program "c:\Program Files (x86)\GnuPG\bin\gpg.exe"
如果您还没有创建 GPG 密钥,请前往 github 的 GPG 密钥教程 here
打开Sourcetree,点击右上角的终端按钮。
Click on terminal icon
(我没有足够的声誉点数 post 图片。当我获得足够的声誉点数时,我会更新图像 :))。
输入以下命令
$ 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 文件夹中的配置文件。以及 add/update 以下选项。
[commit]
gpgsign = true
signingkey = YOUR_KEY_HERE
更新以上选项后尝试提交。
目前(2018 年 2 月 13 日)Sourcetree 仅支持 commit signing in Mac version。
从 this question 开始(自 2013 年起)提交签名在 Windows 版本中仍然不可用。
那么可以在 Windows 版本的 sourcetree 中签署提交吗?
嗯,答案是肯定的,也不是。
我想出的解决方法如下(我假设您已经设置了 GPG 密钥,如果没有,请遵循 github's tutorial on how to set it up)
第 1 步为 Windows
安装 git shell(如果你还没有)
步骤 2 确保 sourcetree 使用系统的 git
按 ctrl+,
转到 git 选项卡并单击 Use System Git
第 3 步配置 git 以签署每个提交(可选)
来自 powershell(或者您可以使用来自 sourcetree 中 terminal
图标的内置终端)。
输入 git config commit.gpgsign true
- 这将配置 git 自动签署当前存储库 中的所有提交 。
如果你想在每个存储库中签署每个提交,请改用git config --global commit.gpgsign true
。
注意 如果您选择跳过第 3 步,请务必在每次提交 (git commit -S
) 时添加 -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 的所有其他功能(推送、拉取、获取、合并等)。
编辑:此缺点已由
我遇到了类似的问题,我按照@theminer3746 的回答进行了设置。
我能够修复 no tty 错误,并且有一个对话框可以使用以下步骤输入密码
- 安装:https://www.gpg4win.org
- 将密钥加载到 Kleopatra 程序中
([Your homedir]/.gnupg/secring.gpg)
- 运行 在您的终端中执行此命令:
git config --global gpg.program "c:\Program Files (x86)\GnuPG\bin\gpg.exe"
如果您还没有创建 GPG 密钥,请前往 github 的 GPG 密钥教程 here
打开Sourcetree,点击右上角的终端按钮。 Click on terminal icon (我没有足够的声誉点数 post 图片。当我获得足够的声誉点数时,我会更新图像 :))。
输入以下命令
$ 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 文件夹中的配置文件。以及 add/update 以下选项。
[commit]
gpgsign = true
signingkey = YOUR_KEY_HERE
更新以上选项后尝试提交。