Separate gitconfig for work and play
We want our work-related stuff to be committed with our work emails. It is often difficult to manage two different gitconfigs. We have to put separate gitconfigs in each work-related repository.
Git 2.13
has conditional includes
which can be used to make this easy.
Assuming we have a separate directory for all work-related projects named work
,
create a file ~/.gitconfig-work
:
[user]
name = Tejas Bubane
email = work.email@example.org
And add this to the bottom of your main ~/.gitconfig
:
[includeIf "gitdir:~/work/"]
path = .gitconfig-work
We are telling git to include .gitconfig.work
only if the project is in ~/work
.
Note that includeIf
expands the config immediately in place (as good as writing it there).
Hence for the overriding to take effect, the include should be below your original config.
This way for work project we use the work email, for all others we use the personal email.
This is just an example of email, but you can override any git config using conditionals.
References:
1 . Conditional config documentation: https://git-scm.com/docs/git-config#_includes
2 . Git 2.13
release notes: https://github.com/blog/2360-git-2-13-has-been-released