Skip to content

Latest commit

 

History

History
125 lines (82 loc) · 2.86 KB

File metadata and controls

125 lines (82 loc) · 2.86 KB

Git Profile switcher

build MIT License

Git Profile allows you to switch between multiple user profiles in git repositories

Installation

If you are a macOS user, you can use Homebrew:

brew install dotzero/tap/git-profile

Prebuilt binaries

Download the binary from the releases page and place it under $PATH directory.

Building from source

If your operating system does not have a binary release, but does run Go, you can build it from the source.

go get -u github.com/dotzero/git-profile

The binary will then be installed to $GOPATH/bin (or your $GOBIN).

Usage

Adds an entry to a profile or updates an existing profile

git profile add home user.name dotzero
git profile add home user.email "mail@mail.com"
git profile add home user.signingkey AAAAAAAA

Displays a list of available profiles

git profile list

Applies the selected profile entries to the current git repository

git profile use home

# Under the hood it runs following commands:
# git config --local user.name dotzero
# git config --local user.email "me@dotzero.ru"
# git config --local user.signingkey AAAAAAAA

If no profile name is provided, an interactive selector will appear to choose a profile

git profile use

Export a profile in JSON format

git profile export home > home.json

Import profile from JSON format

cat home.json | xargs -0 git profile import home

Shell Completion

Shell completion is available for git-profile command.

Note: Use git-profile TAB instead of git profile TAB for completion.

Bash

Requires bash-completion.

# Temporary (current session only)
source <(git-profile completion bash)

# Permanent (Linux)
git-profile completion bash | sudo tee /etc/bash_completion.d/git-profile

# Permanent (macOS)
git-profile completion bash > $(brew --prefix)/etc/bash_completion.d/git-profile

Zsh

# Create completion directory if it doesn't exist
mkdir -p ~/.zsh/completions

# Generate completion file
git-profile completion zsh > ~/.zsh/completions/_git-profile

# Add to ~/.zshrc if not already present
echo 'fpath=(~/.zsh/completions $fpath)' >> ~/.zshrc
echo "autoload -U compinit && compinit" >> ~/.zshrc

# Reload shell
source ~/.zshrc

Fish

# Temporary (current session only)
git-profile completion fish | source

# Permanent
git-profile completion fish > ~/.config/fish/completions/git-profile.fish

License

http://www.opensource.org/licenses/mit-license.php