`gpg.program` treats a leading ‘~’ literally, unlike other path options such as `core.excludesfile`. Error: fatal: cannot exec '~/.local/bin/mygpg': No such file or directory Reproducer: ln -s "$(command -v gpg)" ~/.local/bin/mygpg git config gpg.program '~/.local/bin/mygpg' git commit -S -m "test" # fails as above Expected: Git should expand ‘~’ to $HOME. Work-around: have to use an absolute path