Managing Multiple Git Configurations
Suppose that you have a full time job at Amazon, and you want to separate your git commit emails from Amazon and your personal projects.
Setting up ~/.gitconfig
$ touch ~/.gitconfig
For our personal projects, we will use the ~/.gitconfig file with the following
content:
[user]
name = James Banned
email = james.banned@gmail.com
[includeIf "gitdir:~/Work/"]
path = ~/.gitconfig.work
The includeIf basically means that include this config if I’m inside
the ~/Work/ directory.
Now, let’s create the ~/.gitconfig.work so git would read that config every
time we are working on our work related projects
$ touch ~/.gitconfig.work
Copy the following to the newly created file:
[user]
email = james.banned@amazon.com
Now, this will use james.banned@amazon.com email when doing a
$ pwd
/Users/me/Work/amazon
$ git commit -m "Update README.md"
[master 5213482] Update README.md
1 file changed, 2 insertions(+)
Result:
$ git log
commit 52134828eab8b1dbb79ff5987aca2cdc373222e8 (HEAD -> master, origin/master)
Author: James Banned <james.banned@amazon.com>
Date: Sat May 16 19:34:43 2020 +0800
Update README.md
Also, take note, we didn’t specify the name key here since git will use the values
specified in ~/.gitconfig which, in this case, is James Banned.
Of course, we can add other configurations aside from email such as signingkey,
custom aliases, and anything you valid that you can put inside a git config file.