In order to sign git commits from within Vim using a plugin like tpope/vim-fugitive, it is necessary to configure the gpg-agent to use a GUI based pinentry-program.
Preface
The man, the myth, the legend, Timothy Popallopollis himself recommends configuring your gpg-agent to use a GUI based pinentry-program. On macOS this can be done quite by simply installing pinentry-mac, and updating your gpg-agent.conf.
Configuration
First things first, let's install the pinentry program.
$ brew install pinentry-mac
Then, all we need to do is set the pinentry-program option in your ~/.gnupg/gpg-agent.conf file.
default-cache-ttl 600
max-cache-ttl 7200
pinentry-program /opt/homebrew/bin/pinentry-mac
If your don't know the path to your pinentry program, you can throw down a quick which.
$ which pinentry-mac
/opt/homebrew/bin/pinentry-mac
Or use your Homebrew prefix.
$ echo $(brew --prefix)/bin/pinentry-mac
/opt/homebrew/bin/pinentry-mac
But that's all it takes. Now, you should be prompted to enter your gpg pin in an external window when signing commits from vim.