Вот пример bash-prompt, показывающий текущую ветку git, если мы в папке репозитория
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
if [[ $COLORTERM = gnome-* && $TERM = xterm ]] && infocmp gnome-256color >/dev/null 2>&1; then export TERM=gnome-256color elif infocmp xterm-256color >/dev/null 2>&1; then export TERM=xterm-256color fi export GIT_PS1_SHOWDIRTYSTATE=true export GIT_PS1_SHOWUNTRACKEDFILES=true export GIT_PS1_SHOWSTASHSTATE=true if [[ ${EUID} == 0 ]] ; then PS1='\[\033[0;37m\][\t\[\033[0;37m\]]\[\033[0;33m\][\[\033[0;36m\]\u\[\033[0;36m\]@\[\033[0;36m\]\h \[\033[1;31m\]\w\[\033[0;33m\]]\[\033[0;31m\]$(__git_ps1 "(%s)")\[\033[0;37m\]\\$ \[\0 33[00m\]' else PS1='\[\033[0;37m\][\t\[\033[0;37m\]]\[\033[0;33m\][\[\033[0;36m\]\u\[\033[0;36m\]@\[\033[0;36m\]\h \[\033[0;32m\]\w\[\033[0;33m\]]\[\033[0;31m\]$(__git_ps1 "(%s)")\[\033[0;37m\]\\$ \[\0 33[00m\]' fi |
Работает это за счет стандартного функционала git-core – __git_ps1.
Выглядит это примерно так:
Также по теме можно почитать http://blog.jasonmeridth.com/2010/05/22/git-ps1.html и для Mac OS X https://github.com/marcelor/dotfiles/blob/master/git_ps1
Link to this post!