Git Autocomplete
To enable git autocomplete in terminal:
cp /opt/local/share/doc/git-core/contrib/completion/git-completion.bash ~/.git-autocomplete.sh
Then, add the following to .bashrc
or .bash_profile
source ~/.git-completion.sh
- local and remote branch names
- local and remote tag names
- .git/remotes file names
- git 'subcommands'
- tree paths within 'ref:path/to/file' expressions
- common --long-options
If you do aliases for your commands, you will need to add those as well.
complete -o default -o nospace -F _git_branch gb
complete -o default -o nospace -F _git_checkout gco
alias gst='git status '
alias gc='git commit '
alias gca='git commit -a '
alias ga='git add '
alias gco='git checkout '
alias gb='git branch '
alias gm='git merge '
NOTE: If you get the following error:
bash: __git_ps1: command not found
That means there is a version mismatch, git refactored __git_ps1
to another file.
curl -o ~/.git-prompt.sh https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh
source ~/.git-prompt.sh
function parse_git_dirty {
if [[ $(git status 2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]]; then
echo ""
elif [[ $(git status 2> /dev/null | tail -n1) != "no changes added to commit (use \"git add\" and/or \"git commit -a\")" ]]; then
echo "*"
elif [[(( $(git status 2> /dev/null | grep 'Your branch is ahead of' | wc -l) != 0 ))]]; then
echo "+"
fi
}
Reference: