I know that it's possible to set per-repo configs which override the user-level config (i.e. /path/to/my/repo/.gitconfig
overrides ~/.gitconfig
). Is it possible to set git configs which override the user-level settings for all child folders of a given folder? I.e., I have
|--topLevelFolder1
|--\
| ---.gitconfig_override
|--\
| ---childFolder1
| \---[...]
|--\
| ---childFolder2
| \---[...]
And I want the settings defined in .gitconfig_override
to apply in childFolder1
and childFolder2
.
My motivation for this is as follows: I have a work laptop which I also use in my spare time for personal projects. All my work code is nested within a single folder. When I push to work git repos, I need to do so with my work persona - work login instead of name, and work email. When I push to my own personal (github) repos, I want to do so with my real name and personal email.
Other possible solutions I've thought of (and problems):
- Create separate users for "work" and "play", set their user-level settings appropriately, and log in as the appropriate user when I switch context (hassle, plus I could easily forget to switch)
- Create a script that searches for git repos inside "workFolder", and adds/updates their .gitconfig files to hold the appropriate details (if I create a repo and forget to run the script before pushing, I will push as the wrong person)
- "hack" git such that every time it creates a repo, it checks the filepath and, if appropriate, updates the .gitconfig file (complicated, messy, and almost certainly The Wrong Way To Do It - plus, I wouldn't have the first clue how to go about it!)
I checked this question, which only seems to contain solutions for single repos, not multiple. Hopefully someone will see this question who missed that one!
--global
user settings should contain whichever identity you use more. Each repository that should use the other identity should haveuser.name
anduser.email
set accordingly.user.name
anduser.email
settings in each of the existing repos, and set up a cron script to add them to any newly added repos, but it would be much easier if I could set them in a single place which "filters down" to any repos in child folders.