23

I changed my global Git configuration to sign all commits. I also use gpg-agent so that I don't have to type my password every time.

Now every time I make a new commit I see the following five lines printed to my console:

[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]

Even worse, when I do a simple stash, this message is printed twice, needlessly filling my console (I assume for one for each of the two commit objects that are created).

Is there a way to suppress this output?

friederbluemle
  • 33,549
  • 14
  • 108
  • 109

2 Answers2

24

This is more a gpg configuration issue than a git one.

Since you are using an agent, you could as a workaround add no-tty to your gpg.conf.

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

(this seems working even better than the --batch option)

Community
  • 1
  • 1
VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
11

The accepted answer doesn't work for me for Git version 1.8.3.1 on Fedora 25.

What worked ?

  1. Check if gpg-agent is running by
    $ gpg-agent

  2. Make sure gpg-agent has your passphrase in cache. To make sure it is there, sign any file in the current directory. If the passphrase was not in the cache, it will be asked now.
    $ gpg -s any-file.txt

  3. Don't forget to delete the newly generated signed any-file.txt.gpg
    $ rm any-file.txt.gpg

  4. Now, signing commits with Git will work now by taking the required passphrase from gpg-agent.
    $ git commit -S -m 'my commit message'

kmonsoor
  • 7,600
  • 7
  • 41
  • 55