We recently added support for multiple identities but it's not complete (or seemingly documented, oops). I'll take a note to look into fixing and extending it.
Edit: but also, GCM Core has nothing to do with the user.email/user.name in .gitconfig. I have a similar problem where I want some commits written with my work email and others with my personal, and I always forget to check it when starting in a new repo. I push them both using a single GitHub identity, though, so your situation has an extra wrinkle.
Don't know if you'll see this now that it's been a few hours, but for anyone trying to work with multiple distinct GitHub identities: GCM Core will read the user part of a URL and use it if provided. There's an "ambient" or "default" user for URLs which don't include a user part, which is the only thing most people use. If I wanted to be really specific to use my `vtbassmatt` identity, I'd write:
I manually added the "vtbassmatt@" to tell Git to tell GCM Core that that's who I want to log in as.
(Here's where I could tell you about all the ways in which the credential manager system in Git is deficient... I'll spare you, though, and simply say that this is close to the best we can do without a whole other layer of artifice that you probably wouldn't like.)
You can use includeIf in your gitconfig to set different email defaults based on directory prefix. So keep your personal projects grouped in a personal directory and you don't have to do anything special for each project
Edit: but also, GCM Core has nothing to do with the user.email/user.name in .gitconfig. I have a similar problem where I want some commits written with my work email and others with my personal, and I always forget to check it when starting in a new repo. I push them both using a single GitHub identity, though, so your situation has an extra wrinkle.