Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Git branch and status color in prompt
c_cyan=`tput setaf 6`
c_red=`tput setaf 1`
c_green=`tput setaf 2`
c_sgr0=`tput sgr0`
parse_git_branch ()
{
if git rev-parse --git-dir >/dev/null 2>&1
then
gitver="[$(git branch 2>/dev/null| sed -n '/^\*/s/^\* //p')]"
else
return 0
fi
echo -e $gitver
}
branch_color ()
{
if git rev-parse --git-dir >/dev/null 2>&1
then
color=""
if git diff --quiet 2>/dev/null >&2
then
color="${c_green}"
else
color=${c_red}
fi
else
return 0
fi
echo -ne $color
}
export PS1='\w\[$(branch_color)\]$(parse_git_branch)\[${c_sgr0}\] \$ '
@nrabinowitz

This comment has been minimized.

Copy link
Owner Author

nrabinowitz commented Oct 3, 2014

Sample output:

~/dev/my-repo[master] $

with [master] in red if there are unstaged changes, or green otherwise.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.