Intereting Posts
Создание списка изменений на основе версии package.json (NodeJS) Как получить ярлыки от GitHub с помощью Swift3 Что может привести к потере данных в git? Возможности совместного использования Git-2 Как нажимать конкретную фиксацию ветви на другую ветвь после того, как многие фиксации уже сделаны на обеих ветвях Как настроить сборник github pull в файле Jenkins? <git push> из локального репо -> онлайн-сертификат SSL. проверить сертификат CA в порядке SVN: ветвь репозитория только для чтения? Почему существует задержка между запросом на вытягивание и возможностью его получения (в тире)? Получать все фиксации в рабочее время (или после закрытия) git, когда вы нажимаете свои изменения на пульте дистанционного управления, являются файлы под обновлением .git? Visual Studio: как сделать одно решение зависимым от другого? Как перенести рабочие элементы Team Foundation Server 2013 в новый репозиторий TFS Git? слияние 2 ветвей того же проекта, которые не поддерживались программным обеспечением контроля версий Git объединяет репозитории в одну корневую папку

Git подписал коммиты – Как подавить «Вам нужна кодовая фраза, чтобы разблокировать секретный ключ …»

Я изменил свою глобальную конфигурацию Git, чтобы подписать все коммиты. Я также использую gpg-agent, так что мне не нужно вводить пароль каждый раз.

Теперь каждый раз, когда я делаю новый коммит, я вижу следующие пять строк, напечатанных на моей консоли:

[blank line] You need a passphrase to unlock the secret key for user: "John Doe <mail@gmail.com>" 2048-bit RSA key, ID ABCDEF12, created 2016-01-01 [blank line] 

Хуже того, когда я делаю простой тайник, это сообщение печатается дважды , без необходимости заполняя мою консоль (я предполагаю, что для каждого из двух создаваемых объектов фиксации).

Есть ли способ подавить этот выход?

Это скорее проблема настройки gpg, чем git.

Поскольку вы используете агент, вы можете в качестве gpg.conf решения добавить no-tty в свой gpg.conf .

 echo 'no-tty' >> ~/.gnupg/gpg.conf 

(это работает даже лучше, чем опция --batch )

Принятый ответ не работает для меня для version 1.8.3.1 Git version 1.8.3.1 на Fedora 25 .

Что сработало?

  1. Проверьте, запущен ли gpg-agent
    $ gpg-agent

  2. Убедитесь, что gpg-agent имеет кодовую фразу в кеше. Чтобы убедиться, что он есть, подпишите любой файл в текущем каталоге. Если кодовая фраза не была в кеше, она будет предложена.
    $ gpg -s any-file.txt

  3. Не забудьте удалить вновь созданный подписанный any-file.txt.gpg
    $ rm any-file.txt.gpg

  4. Теперь подписание коммитов с Git будет работать теперь, взяв требуемую кодовую фразу из gpg-agent.
    $ git commit -S -m 'my commit message'