Append git's branch name to command prompt Append git's branch name to command prompt git git

Append git's branch name to command prompt


The trick to get the quoting right is to have eveything double-quoted, except for $(__git_ps1 "(%s)"), which is single-quoted.

source ~/.git-completion.bashfunction prompt{local WHITE="\[\033[1;37m\]"local GREEN="\[\033[0;32m\]"local CYAN="\[\033[0;36m\]"local GRAY="\[\033[0;37m\]"local BLUE="\[\033[0;34m\]"export PS1="${GREEN}\u${CYAN}@${BLUE}\h ${CYAN}\w"' $(__git_ps1 "(%s)") '"${GRAY}"}prompt

An alternative solution is to replace $( with \$( in the code in the question.

Background information: Two substitutions take place: first at export PS1="..." time, and later when the prompt is displayed. You want to execute __git_ps1 each time the prompt is displayed, so you have to make sure that the first substitution keeps $(...) intact. So you write either '$(...)' or "\$(...)". These are the two basic ideas behind the solutions I've proposed.


Not sure, but vcprompt might solve it better for you?