How to Set Different Git Config user.email and user.name for Work and Personal at a Folder Level

Mar 14, 2021

2 min read

process

repository

Author picture

by Arun Endapally

Contributor

14k Views

We would be working on companies repositories mostly, but sometimes we would be working on personal git repositories as well. So ideally, we would be setting user.name and user.email globally with our company username and email as shown below:

TEXT
C:\>git config --global user.name "Arun Endapally"
C:\>git config --global user.email "arun.endapally@work.com"
C:\>git config --global user.name
Arun Endapally
C:\>git config --global user.email
arun.endapally@work.com

Whenever we clone a public repository or start our own personal repository, we would like to use our personal name and email instead of company's and it becomes very irritating to set up this information each time at the repository level as shown below:

TEXT
C:\my-repo>git config user.name "Arun"
C:\my-repo>git config user.email "arun.endapally@personal.com"
C:\my-repo>git config user.name
Arun
C:\my-repo>git config user.email
arun.endapally@personal.com

We can simplify this process by setting this information at the folder level. First, create a separate folder where you want to clone the public repos or start your personal repo, then open .gitconfig by entering .gitconfig in the run.

image_thumb1

In .gitconfig, update as below:

TEXT
[user]
  email = arun.endapally@work.com
  name = Arun Endapally

Note: You should add includeIf to bottom as highlighted in bold, order is important here. Now create a file with name .gitconfig-personal in C:/Personal and add your personal name and email to it as below:

TEXT
[user]
    name = Arun Endapally
    email = arun.endapally@personal.com

Now go ahead and test your setting, you should see that the git repositories in the personal folder would use personal details while the rest of the folders would use work details as below:

TEXT
C:\personal>git config user.name
Arun Endapally

Enjoy! If you liked it, please share it with your friends and colleagues, .

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)