gguser – A Simple CLI to Manage Multiple Git Profiles
As devs, we juggle work, personal, & open-source projects—all on one laptop. Accidentally committing with the wrong identity is a nightmare.
That’s why I built gguser – a simple CLI to manage Git profiles effortlessly!
- Quick profile switching
- Auto-switch per project
- Check active Git user
- SSH key support
Try it now: npm install -g gguser
GitHub: https://github.com/withshubh/gguser
4 comments
[ 2.3 ms ] story [ 23.0 ms ] threadI use this technique to use my personal identity by default, and my work identity with repos that are checked out under ~/$WORK
I even have git aliases that behave differently depending on which identity I'm using.
- Work on multiple Git accounts across scattered directories
- Want a simple CLI-based profile switcher
- Prefer explicit control over which profile is used
- Don’t want to manually edit .gitconfig
- Need SSH key support per profile
With gguser, you can quickly switch profiles interactively, auto-switch based on any directory, and override profiles on the fly—without relying on folder-based rules.
If the .gitconfig method works for you, that’s great! :) But for devs who don’t want to tweak configs or need a more dynamic approach, gguser makes managing multiple Git identities effortless.
Honestly, overriding profiles per repo sounds like a disaster waiting to happen for me. I'm pretty sure I'd check out a repo and forget to set the right identity for it at some point. But if it works better for you, it works better for you.
I'm curious: if you're not grouping repos in your filesystem according to which context they're from — which for me dictates which identity I want to use — how are you choosing which directories to store repos in? Or does the context not dictate which identity you want to use?
For me, my repos aren’t always neatly grouped by context. I might clone a work repo temporarily somewhere else or have open-source contributions scattered around. Rather than relying on predefined paths, I prefer explicitly linking profiles or switching manually when needed.
That said, if the .gitconfig + core.sshCommand method works perfectly for you, that’s awesome! But I’d still love for you to give gguser a try—it’s super lightweight, doesn’t modify your .gitconfig, and could be a handy tool for times when you need a quick profile switch or override without tweaking configs manually.
Would be curious to hear your thoughts if you try it out!:)