Profile-based Git config
Save multiple names and emails, then apply them to the current repository using local Git configuration.
A lightweight CLI for switching Git identities and GitHub SSH profiles per repository.
curl -fsSL https://raw.githubusercontent.com/void-wizard/gitshift/main/install.sh | bash
gitshift helps developers who move between personal, work, client, and open source accounts without accidentally committing with the wrong Git user or SSH key.
Save multiple names and emails, then apply them to the current repository using local Git configuration.
Bind profiles to SSH host aliases so clones and pushes use the matching GitHub account.
Show the active repository identity before normal Git status output, right where mistakes usually happen.
gitshift is built around a small set of commands. Each one does one visible thing: install the tool, create profiles, apply an identity, clone with the right SSH host, or show the current repository identity.
Run the installer, then reload your shell configuration so the gitshift command is available in your terminal.
curl -fsSL https://raw.githubusercontent.com/void-wizard/gitshift/main/install.sh | bash
source ~/.zshrc
~/.gitshift, added to your shell path, and ready to run in new terminal sessions.source ~/.bashrc instead if Bash is your default shell. Installed files live under ~/.gitshift.Run init once to create the local files gitshift uses to store profiles.
gitshift init
~/.gitshift.Run add to create a named identity profile. gitshift will ask for these fields during setup.
gitshift add
gitshift use work.
~/.ssh/config that uses the right SSH key.
Run this inside a Git repository. In this example, work is the profile name you entered when running gitshift add.
gitshift use work
work profile. Other repositories keep their own identities.When a profile is bound to a GitHub owner and SSH host, gitshift can clone using the right host alias automatically.
gitshift clone owner/repo
gitshift clone git@github.com:owner/repo.git
gitshift clone https://github.com/owner/repo.git
Use who when you want a quick answer, or let the shell hook show identity information before normal Git status output.
gitshift who
git status
List profiles when you forget a name, remove one profile when it is no longer needed, or clear all profiles before rebuilding your setup.
gitshift list
Prints the profiles saved on this machine.
gitshift remove work
Deletes the selected profile from gitshift storage.
gitshift remove --all
Clears every saved profile after confirmation.
gitshift help
Shows available commands and usage examples.
~/.gitshift/profiles. Avoid special characters in profile names, names, emails, and GitHub owners.Use one small command to make each repository remember who it belongs to.