Android Studio и Git - Как я могу подписаться на GPG?
Согласно эта ссылка, мне просто нужно включить переключатель -S
, чтобы подписать мою фиксацию, используя мой ключ GPG, но я не знаю, Посмотрите, как я могу использовать это в Android Studio.
Как подписать мои коммиты в Android Studio?
EDIT: Я ценю, что решения OSX идут, но мне бы очень хотелось увидеть ответ, который работает с Windows. Я использую только Mac для документов и т.д.
Ответы
Ответ 1
После некоторого теста я следую этим шагам, и он работает
Не забудьте перезапустить 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
источник ~/.profile
- сделать одну фиксацию с помощью опции -S
git commit -am "мое сообщение фиксации" -S
- вы должны получить пароль promp.
- введите свой пароль
Вот оно!!!
Ответ 2
Как я упоминал в разделе Знак git фиксируется с GPG", git 2.0:
Если вы хотите, чтобы GPG подписывал все ваши коммиты, вы должны постоянно добавлять параметр -S.
Параметр commit.gpgsign
config позволяет автоматически подписывать все коммиты.
Это не работает в полной мере, и это а затем номер 127802 со следующими обходными способами:
Создал помощник script с этим контентом:
/usr/bin/gpg –batch –no-tty "[email protected]"
и установите gpg.program
на script
Или:
Добавление "no-tty
" в "~/.gnupg/gpg.conf
" решило проблему для меня.
Вы все равно можете получить сообщение об ошибке:
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
→ pinentry-program /usr/local/bin/pinentry-mac
3) git config –global gpg.program gpg2
Ответ 3
Если у вас установлена git для Windows и выбранная опция MingGW во время установки, это то, что я использовал, чтобы заставить Android Studio работать с подписанием коммитов.
Программы, упомянутые/используемые со ссылками для тех, у кого их еще нет.
Для тех, кто хочет прочитать статью, я использовал для подписи gpg в моей среде Windows (нижняя половина страницы, начинающаяся с строк git config
, больше нас беспокоит):
https://jamesmckay.net/2016/02/signing-git-commits-with-gpg-on-windows/
Я кратко рассмотрю процесс выполнения части gpg через командную строку - предположим, что все три программы уже установлены здесь.
Установите git в Android Studio
Если вы не указали, где git находится в Android Studio, здесь, где вы делаете это в настройках:
ПРИМЕЧАНИЕ. Это можно сделать либо в File > Project Settings
для одного проекта, либо File > Other Settings > Default Settings...
Управление версиями > git > Путь к git Исполняемый файл
Поскольку я использовал версию MinGW, она установила:
C:\Program Files\Git\mingw64\bin\git.exe
Экспорт существующих общедоступных и секретных ключей из версии MinGW (git bash)
ПРИМЕЧАНИЕ. Выполнение с помощью приглашенной программы MinGW
-
gpg --export > ~/gpg-public
-
gpg --export-secret-keys > ~/gpg-secret
ПРИМЕЧАНИЕ. Для тех, кто не знает, ~/
по умолчанию установлен в домашний каталог пользователя. (например, Windows 10: C:/Users/%USERNAME%
)
Импортировать экспортированные ключи в Gpg4win
ПРИМЕЧАНИЕ. Выполните команду Windows Command Prompt.
-
gpg --import < "C:/Users/%USERNAME%/gpg-public"
-
gpg --import < "C:/Users/%USERNAME%/gpg-secret"
Замените место где бы ни находились ваши файлы gpg-public
и gpg-secret
.
Сделать git использовать gpg из Gpg4win
Как упоминалось в статье. Он переиздан здесь, если вы его не открыли.
ПРИМЕЧАНИЕ. Выполнение с помощью приглашенной программы MinGW
-
git config --global gpg.program "C:/Program Files (x86)/GNU/GnuPG/gpg2.exe"
Замените значение gpg.program
(сохраняя gpg2.exe
) выше, где бы вы ни установили установщик gpg4win, чтобы установить его.
(ДОПОЛНИТЕЛЬНО). Пока вы на нем, вы можете настроить git для автоматического подписания своих коммитов с помощью ключа по умолчанию (требуется git version >= 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
, и после /
.
Теперь вы сможете совершить использование Android Studio и увидеть приглашение для ввода пароля.