Managing multiple Git profiles
What if Git already knew whether to use your work email or personal? Say no more. Here's how.
- By Rahul
- ·
- Code Review
- Insights
If you use git as the version control tool for both your personal projects and at work, chances are that you want to isolate the two (or more) profiles, i.e. at the very least, using different emails for creating commits and tags. Other uses might include using different usernames (for different GitHub accounts), gpg-keys, etc.
One straightforward way of tackling this is to remember setting the correct configuration whenever you clone (or initialize) a new repo:
git config user.name "priam"
git config user.email "[email protected]"
Besides, being painstakingly mundane, it is yet another thing to remember. Nevermind the time and effort of rewriting history if you have already created commits.
But wait, there's a better way
Git offers a much more flexible way of specifying conditional config files based
on your current directory — if you use a different directory for all your
work repos (let's say ~/work/
), then you can specify the following in your
~/.gitconfig
to automatically use your work credentials inside them:
[include]
path = ~/git-personal.conf
[includeIf "gitdir:~/work/"]
path = ~/git-work.conf
Each conf file can then define it's own user, e.g. ~/git-personal.conf
:
[user]
name = realerlich
email = [email protected]
signingkey = FF5353EC154B6811
and ~/git-work.conf
:
[user]
name = erlich
email = [email protected]
signingkey = CE3454AA132E6F2E
There, all set now! Whenever you are working inside a repo that lives under
~/work
, Git will automatically use your work email. Go ahead, try it out!