No description, website, or topics provided.
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This is a simple bash function that lets you set git environments on a global scale, so that if you've pretty much got two or three you use for all of your projects and you don't want to set them all individually, you can change your global config on the fly.

Simply put this into


and create any environment directories you want. If you had two main configurations you use, you'd create two directories, each with a .gitconfig and an optional .gitignore, laid out like this:

  ~/.git/default/.gitignore # Used if .gitignore not included in env

  ~/.git/env1/.gitignore  # Optional

  ~/.git/env2/.gitignore  # Optional

Then, inside your ~/.bashrc, add the following:

  if [ -f ~/.git/.bash_git ]; then
    source ~/.git/.bash_git

At this point, either restart or simply run

  $ source ~/.bashrc

Then, to change your config, just run

  $ gitset env1

This will remove your gitconfig files and create symlinks to the ones you chose. If you choose a bad one, it will say so and not remove anything.