-S
开关即可使用我的GPG密钥签名,但我不知道如何在Android Studio中使用。如何在Android Studio中签署我的提交? 编辑:感谢提供适用于MacOS的解决方案,但我真的希望看到一个适用于Windows的答案。我只在Mac上用于文档等。
-S
开关即可使用我的GPG密钥签名,但我不知道如何在Android Studio中使用。如果您想对所有提交进行GPG签名,则必须始终添加-S选项。
commit.gpgsign
配置选项允许自动签署所有提交。
但这并不完全有效,并且存在问题127802,以下是解决方法:
创建一个带有该内容的助手脚本:
/usr/bin/gpg –batch –no-tty "$@"
将
gpg.program
设置为该脚本
或者:
在"
~/.gnupg/gpg.conf
"中添加"no-tty
"解决了我的问题。
您可能仍然会收到错误消息:
Commit failed with error:
gpg: problem with the agent - disabling agent use
gpg: Sorry, no terminal at all requested - can't get input
error: gpg failed to sign the data
fatal: failed to write commit object
再次提醒: 正在进行的错误,也跟随着问题110261:
除了之前的解决方案(OS X),还可以使用以下方法来解决它:
1)
brew install gnupg gnupg2 pinentry-mac
2)
nano ~/.gnupg/gpg-agent.conf
->pinentry-program /usr/local/bin/pinentry-mac
3)
git config -–global gpg.program gpg2
在进行了一些测试后,我按照以下步骤操作成功了。请记得在执行以下步骤后重新启动Android Studio:
每次提交都需要输入密码很烦人吗?
之后编辑gpg.conf文件
nano ~/.gnupg/gpg.conf
use-agent
no-tty
default-key <your key id>
ln -s /usr/local/Cellar/libgcrypt/1.7.0_1 /usr/local/opt/libgcrypt
ln -s /usr/local/Cellar/libgpg-error/1.22 /usr/local/opt/libgpg-error
ln -s /usr/local/Cellar/libassuan/2.4.2 /usr/local/opt/libassuan
ln -s /usr/local/Cellar/pth/2.0.7 /usr/local/opt/pth
source ~/.profile
git commit -am "my commit message" -S
就是这样!!!
git config
行开始的页面底部是我们更关心的部分)
https://jamesmckay.net/2016/02/signing-git-commits-with-gpg-on-windows/
我将简要介绍通过命令行执行gpg部分的过程,假设所有三个程序都已经安装好了。注意:对于不了解的人,~/
默认设置为用户的主目录。 (例如,Windows 10:C:/Users/%USERNAME%
)
注意:使用Windows命令提示符执行。
gpg --import < "C:/Users/%USERNAME%/gpg-public"
gpg --import < "C:/Users/%USERNAME%/gpg-secret"
将位置替换为您的gpg-public
和gpg-secret
文件所在的位置。
如文章所述。 如果您没有打开它,则会在此重新发布。
注意:使用MinGW提示程序执行
将上面的
git config --global gpg.program "C:/Program Files (x86)/GNU/GnuPG/gpg2.exe"
gpg.program
值(保留gpg2.exe
)替换为您指定安装gpg4win安装程序的位置。将
git config --global user.name <name>
git config --global user.email <email>
git config --global user.signingkey <your-key-ID>
git config --global commit.gpgsign true
<>
中的值替换为您自己的值。您可以通过运行gpg --list-keys
并从以pub
开头且在/
之后的行中获取密钥ID。