Android Studio和Git - 如何通过GPG签署我的提交?

时间:2016-06-11 07:07:56

标签: windows git android-studio github gnupg

根据this link,我只需要使用我的GPG密钥包含-S开关来签署我的提交,但我不知道如何在Android Studio中使用它。< / p>

如何在Android Studio中签署我的提交?

编辑:我很欣赏OSX解决方案的出现,但我真的很想看到适用于Windows的答案。 我只使用我的Mac作为文档和内容。

3 个答案:

答案 0 :(得分:5)

进行一些测试后,我按照这个步骤进行操作 请按照以下步骤重新启动Android Studio:

你是否厌倦了为每次提交写密码???

  

nano~ / .gnupg / gpg.conf

添加以下行

use-agent
no-tty
default-key <your key id>
  • 完成所有配置后,如果您使用MacOS。你应该:
  

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

  • 使用选项-S
  • 进行一次提交
  

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设置

如果你没有在Android Studio中指定git的位置,请点击以下设置:

  

注意:这可以在一个项目的File > Project SettingsFile > Other Settings > Default Settings...

中完成      

版本控制&gt; Git&gt; Git可执行文件的路径

由于我使用的是MinGW版本,因此设置为:  C:\Program Files\Git\mingw64\bin\git.exe

从MinGW版本(git bash)

导出现有的公钥和密钥

注意:使用MinGW提示程序执行

  
      
  1. gpg --export > ~/gpg-public
  2.   
  3. gpg --export-secret-keys > ~/gpg-secret
  4.   

注意:对于那些不知道的人,默认情况下~/设置为用户的主目录。 (例如Windows 10:C:/Users/%USERNAME%

将导出的密钥导入Gpg4win

注意:使用Windows命令提示符执行。

  
      
  1. gpg --import < "C:/Users/%USERNAME%/gpg-public"
  2.   
  3. gpg --import < "C:/Users/%USERNAME%/gpg-secret"
  4.   

将地点替换为gpg-publicgpg-secret文件所在的位置。

让Git使用Gpg4win的gpg

正如文章中提到的那样。如果您没有打开它,它会转发到此处。

注意:使用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提交并看到密码输入的提示。