git magic 6.8 小节有提到
> 另一个是在提示符或窗口标题上打印当前分支。调用:
> $ git symbolic-ref HEAD
> 显示当前分支名。在实际应用中,你可能最想去掉“refs/heads/”并忽略错误:
> $ git symbolic-ref HEAD 2> /dev/null | cut -b 12-
> 更多例子参见Git主页(
http://git.or.cz/)。这个适用到PS1中是这样的
{{{
PS1='`a=$?;if [ $a -ne 0 ]; then echo -n -e "\[\e[01;32;41m\]{$a}"; fi`\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w`b=$(git symbolic-ref HEAD 2> /dev/null | cut -b 12-); [[ "$b" != "" ]] && echo -n -e "\[\e[33;40m\]($b)\[\033[01;32m\]\[\e[00m\]"`\[\033[01;34m\] $ \[\e[00m\]'
}}}
并且如果上一次命令返回值 $? 不为 0 时会标红