根据this link,我只需要使用我的GPG密钥包含-S
开关来签署我的提交,但我不知道如何在Android Studio中使用它。< / p>
如何在Android Studio中签署我的提交?
编辑:我很欣赏OSX解决方案的出现,但我真的很想看到适用于Windows的答案。 我只使用我的Mac作为文档和内容。
答案 0 :(得分:5)
进行一些测试后,我按照这个步骤进行操作 请按照以下步骤重新启动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“我的提交消息”-S
多数民众赞成!
答案 1 :(得分:5)
正如我在&#34; Sign git commits with GPG&#34;中提到的,使用Git 2.0:
如果您想要GPG签署所有提交,您必须始终添加-S选项
commit.gpgsign
配置选项允许自动签署所有提交。
这并不完全有用,并且是followed by issue 127802,具有以下解决方法:
使用该内容创建了一个帮助程序脚本:
/usr/bin/gpg –batch –no-tty "$@"
并将
gpg.program
设置为该脚本
或者:
添加&#34;
no-tty
&#34;到&#34;~/.gnupg/gpg.conf
&#34;为我解决了这个问题。
您可能仍会收到错误消息:
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
再次:正在进行中的错误,后面跟着issue 110261:
除了之前的解决方案(OS X)之外,解决它:
1)
brew install gnupg gnupg2 pinentry-mac
2)
nano ~/.gnupg/gpg-agent.conf
- &gt;pinentry-program /usr/local/bin/pinentry-mac
3)
git config -–global gpg.program gpg2
答案 2 :(得分:1)
如果您安装了适用于Windows的git,并在安装过程中选择了MingGW选项,那么这就是我使用Android Studio处理签名提交的过程。
为那些尚未拥有它们的人提及/使用链接的程序。
对于那些想要阅读我曾经在我的Windows环境中使用gpg签名的文章的人(从git config
行开始的页面的下半部分是我们更关心的):
https://jamesmckay.net/2016/02/signing-git-commits-with-gpg-on-windows/
我将简要介绍通过命令行执行gpg部分的过程 - 假设所有三个程序都已从此处安装。
如果你没有在Android Studio中指定git的位置,请点击以下设置:
注意:这可以在一个项目的
中完成File > Project Settings
或File > Other Settings > Default Settings...
版本控制&gt; Git&gt; Git可执行文件的路径
由于我使用的是MinGW版本,因此设置为:
C:\Program Files\Git\mingw64\bin\git.exe
注意:使用MinGW提示程序执行
gpg --export > ~/gpg-public
- 醇>
gpg --export-secret-keys > ~/gpg-secret
注意:对于那些不知道的人,默认情况下~/
设置为用户的主目录。 (例如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以使用默认密钥自动签署您的提交(需要git版本&gt; = 2.0)
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来获取密钥ID。
现在您应该能够使用Android Studio提交并看到密码输入的提示。