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. – Chrisuser.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. – scubbo