Git multiple user names for the different projects within the same system

gitgit-config

I have a different git repository for my office and a different git repo for my hobby projects.

When I do git config --global user.name
the user name changes globally and this creates a confusion
of committing to a repo with user name.

Hence the question is how can i have the same username across all my hobby projects and
the same username across the office projects. I use the same machine to work on both the places.

Best Solution

Just use --local instead of --global. In fact, local is the default so you can just do

git config user.email personal@example.org
git config user.name "whatf hobbyist"

in one repo, and

git config user.email work@example.com
git config user.name "whatf at work"

in another repo

The values will then be stored in in the .git/config for that repo rather than your global configuration file.