Set up different work e–mail in git by directory
For some time now git can include additional config files depending on
directory you are in (since version 2.13.0 to be
precise). Most common use case for this is setting your work e–mail for
repositories checked out in one directory
(e.g. ~/src/@example-inc
)
while keeping your private e–mail for the rest of the projects.
There’s a good chance you currently have something similar to this in
your ~/.gitconfig
:
[user]
name = "Test “The Face” McTestface"
email = test@example.net
# Hopefully you also have a GPG key for the e–mail.
# Ignore signingKey key here and later if you don’t.
signingKey = "0123456789ABCDEF"
If you want to use a different e–mail for work stuff, you need to remember to set it every time you create or clone a repository:
git config user.name "Test McTestface"
git config user.email "test.mctestface@example.com"
git config user.signingKey "FEDCBA9876543210"
No more!
You can add a conditional include to your ~/.gitconfig
:
[user]
name = "Test “The Face” McTestface"
email = test@example.net
signingKey = "0123456789ABCDEF"
[includeIf "gitdir:~/src/@example-inc"]
path = ./.gitconfig.work
Then create ~/.gitconfig.work
and put any config you want to be used
for repositories checked out in ~/src/@example-inc
(or its
subdirectories):
[user]
name = "Test McTestface"
email = "test.mctestface@example.com"
signingKey = "FEDCBA9876543210"
Presto!
If you are using vim, you may want to add a vim modeline to get proper
syntax highlighting in ~/.gitconfig.work
:
# vim: ft=gitconfig