gguser – A Simple CLI to Manage Multiple Git Profiles

1 points by withshubh 15 hours ago

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

dave4420 15 hours ago

What’s the advantage of this over https://utf9k.net/blog/conditional-gitconfig/ ?

I 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.

  • withshubh 14 hours ago

    Good point! Using Git’s conditional includes is a solid approach if your repos follow a strict directory structure. But gguser is designed to be more flexible and user-friendly, especially for developers who:

    - 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.

    • dave4420 4 hours ago

      I have per profile ssh keys, by setting core.sshCommand differently per profile, and passing a different ssh config file in each profile.

      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?