Last update: 30-01-2024
Last view: 30-01-2024
Go to your work folder, mine is located at:
F:/Work/EnterpriseName/
And then create a .gitconfig-work
with the following data:
[user]
name = Name at work
email = email@atwork.com
The folder should be like this:
📂 EnterpriseName
├─ 📂 project01
├─ 📂 project02
├─ 📂 project03
└─ 📄 .gitconfig-work
Navigate to your current .gitconfig
and open it.
Usually it's at C:\Users\your-user
It should have something like:
[user]
name = Icaruk
email = myemail@hotmail.com
That's the global config, that will be used as the default one. If it doesn't exist, create it with these commands:
> git config --global user.name "Icaruk"
> git config --global user.email "myemail@hotmail.com"
Add the following lines below:
[includeIf "gitdir:F:/Work/EnterpriseName/"]
path = F:/Work/EnterpriseName/.gitconfig-work
- The first path is your work path, it must end with "/".
- The second path is your
.gitconfig-work
that you created on your work folder. But it can be anywhere, just point at it.
[user]
data block. More info at mi6th comment.
The resulting file should be like this:
Windows:
[user]
name = Icaruk
email = myemail@hotmail.com
[includeIf "gitdir:F:/Work/EnterpriseName/"]
path = F:/Work/EnterpriseName/.gitconfig-work
MacOS and Linux:
[user]
name = Icaruk
email = myemail@hotmail.com
[includeIf "gitdir:~/Work/EnterpriseName/"]
path = ~/Work/EnterpriseName/.gitconfig-work
If it doesn't work, try removing the
~
Go to your work folder and open any project, then run:
> git config user.email
It should display your work email.
Now go to any project that isn't located inside your work folder and run the same command. It should display your default email.
Note that the
includeIf
directive(s) MUST FOLLOW configuration values that should be overridden by the included file, e.g. this won't work:Now, if we run the command
git -C F:/Work/EnterpriseName/MySomeCoolRepo config --get user.name
the result isdefaultUser
and notIcaruk
because the valuedefaultUser
foruser.name
hasn't been overridden by the included file as desired.To fix this we need to reorder declarations in the
~/.gitconfig
file like this:Now, if we run the command
git -C F:/Work/EnterpriseName/MySomeCoolRepo config --get user.name
the result isIcaruk
and no moredefaultUser
because the value of theuser.name
directive has been overridden by the included file as desired.