If you are like me and do open source contributions from an office laptop and your company uses some other git service then this blog is for you.
Using separate directory for repos
Let’s say we will create a directory based on our type of work.
- Work
- Personal
Create a global git config file .gitconfig
You should have a global gitconfig from where you will map your specific type of gitconfigs.
And that’s it .gitconfig
Create two specific gitconfig for two purposes
- .gitconfig-work
- .gitconfig-personal
Map those two gitconfigs with global gitconfig with directory
git config --global --add includeif.gitdir:/path/to/work/directory .gitconfig-work
git config --global --add includeif.gitdir:/path/to/personal/directory .gitconfig-personal
Specify information in the gitconfigs
[user]
name = work_user
email = work_email
[user]
name = personal_user
email = personal_email
Go to the directory and see your config list
$ cd ~/work
$ mkdir work-test-repo
$ cd work-test-repo
$ git init
*Initialized empty Git repository in /Users/aniruddha/work/work-test-repo/.git/*
$ git config -l
*credential.helper=osxkeychain
includeif.gitdir:~/personal/.path=~/.gitconfig-personal
includeif.gitdir:~/work/.path=~/.gitconfig-work
**user.name=working_me
user.email = work@work.com**
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true*
$ cd ~/personal
$ mkdir personal-test-repo
$ git init
*Initialized empty Git repository in /Users/aniruddha/personal/.git/*
$ git config -l
*credential.helper=osxkeychain
includeif.gitdir:~/personal/.path=~/.gitconfig-personal
**user.name=me_personal
user.email=personal@personal.com**
includeif.gitdir:~/work/.path=~/.gitconfig-work
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true*
Now you can see you have two types of gitconfigs according to your directory.