Thought I'd share how I'm configuring user.name and user.email for git on my work computer. This is really just a post so when I forget how I did in the future I can google my own blog and be reminded...
I have always struggled with accidentally committing to an OSS project my work name/email or visa-versa, committing to a work git repo with my personal name/email.
For most, user.name shouldn't change, unless your company ties your user.name to something specific to the company like a username. (Contrast: user.name = Jason Jarrett and user.name = jjarrett).
When I clone projects I always clone them into a folder structure that looks like
|____~/code
| |____personal/ <--- this is where I would put some OSS projects that I may be working on or contributing to.
| |____work/ <--- obviously work code goes in here
Thanks to this post where I learned about direnv and followed the last option I basically used these steps...
Setup
-
Install
direnv-brew install direnv(What about Windows? see this github issue and help make it work) -
Create
.envrcfile for each profile needing to be setup with the following contentexport GIT_AUTHOR_EMAIL=<your email> export GIT_AUTHOR_NAME=<your name> export GIT_COMMITTER_EMAIL=<your email> export GIT_COMMITTER_NAME=<your name> -
After installing and setting the
.envrcfilesdirenvwill prompt to use the env file which we accept by runningdirenv allow.
Now I should have the following structure
|____~/code
| |____personal/
| |____.envrc <-- env settings with personal git user/email
| |____work/
| |____.envrc <-- env settings with work git user/email
What did this do?
Each time we cd into either a personal/ or work/ folder direnv will setup our shell with environment variables contained in that folder's .envrc file. This will then allow Git which respects these env vars and now we don't have to think about committing the wrong name/email to the wrong Git repositories.
Happy Gitting!