I like to have separate “identities” for my private and work stuff when using Git: Commits at work should be authored with my work email and commits in private projects with my private account. Until now I would always configure this per repository as soon as I noticed a commit done by the wrong email.
As I was setting up my new computer and edited the global
.gitconfig, I wondered if there is a better way to keep this separate. Turns out there is one: With the release of version 2.13, Git introduced “Conditional Includes”.
With these includes I can set a specific gitconfig-file to be include for all repositories within a specific location. As I store all my work projects within the folder
~/Work, I set the default user-config to be my private one and include the work-specific configfile for all Git repositories within that location.
The risk of being annoyed by wrongly associated commits is vastly smaller now — until I start checking out work projects to ~/Desktop/tmp for minor fixes.
To check your configuration, make sure to be in a directory which is tracked by Git. Non-Git directories will always show the default configuration: