Git подписанные коммиты - Как подавить "Вам нужна кодовая фраза, чтобы разблокировать секретный ключ..."
Я изменил мою глобальную конфигурацию Git, чтобы подписать все коммиты. Я также использую gpg-agent, так что мне не нужно каждый раз вводить пароль.
Теперь каждый раз, когда я делаю новый коммит, я вижу следующие пять строк, напечатанных на моей консоли:
[blank line]
You need a passphrase to unlock the secret key for
user: "John Doe <[email protected]>"
2048-bit RSA key, ID ABCDEF12, created 2016-01-01
[blank line]
Хуже того, когда я делаю простой тайник, это сообщение печатается дважды, без необходимости заполняя мою консоль (я предполагаю, что для каждого из двух создаваемых объектов фиксации).
Есть ли способ подавить этот вывод?
Ответы
Ответ 1
Это больше проблема с настройкой gpg, чем git.
Поскольку вы используете агент, вы можете в качестве временного решения добавить no-tty
в свой gpg.conf
.
echo 'no-tty' >> ~/.gnupg/gpg.conf
(кажется, работает даже лучше, чем опция --batch
)
Ответ 2
Принятый ответ не работает для меня для Git version 1.8.3.1
на Fedora 25
.
Что сработало?
-
Проверьте, работает ли gpg-agent
с помощью
$ gpg-agent
-
Убедитесь, что gpg-agent
имеет вашу кодовую фразу в кеше. Чтобы убедиться, что он есть, подпишите любой файл в текущем каталоге. Если кодовая фраза не была в кеше, она будет задана сейчас.
$ gpg -s any-file.txt
-
Не забудьте удалить вновь созданный подписанный any-file.txt.gpg
$ rm any-file.txt.gpg
-
Теперь подписывание с помощью Git будет работать теперь, взяв требуемую кодовую фразу из gpg-agent.
$ git commit -S -m 'my commit message'