Perdió el prompt de Git después de la reinstallation a través de Homebrew

Solía ​​tener el shiny prompt de Git en mi terminal, pero luego de reinstalar git a través de Homebrew ahora solo muestra un paréntesis vacío para el nombre de la twig. El paréntesis es de color verde para mostrar el estado como antes, pero falta el nombre de la twig. ¿Debo cambiar algo en mi .bash_profile? Así es como se ve actualmente:

# MacPorts Installer addition on 2012-05-23_at_10:37:44: adding an appropriate PATH variable for use with MacPorts. export PATH=/opt/local/bin:/opt/local/sbin:$PATH # Finished adapting your PATH environment variable for use with MacPorts. export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:/usr/local/bin:/opt/local/bin:/opt/local/sbin:/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:$PATH # Added for MongoDB export MONGO_PATH=/usr/local/mongodb export PATH=$PATH:$MONGO_PATH/bin # Tell ls to be colourful export CLICOLOR=1 export LSCOLORS=GxFxCxDxBxegedabagaced # Tell grep to highlight matches export GREP_OPTIONS='--color=auto' # Added for Git bash completion after I moved from macports to homebrew if [ -f $(brew --prefix)/etc/bash_completion ]; then . $(brew --prefix)/etc/bash_completion fi PS1="Desk /W# " # Set colour bash prompt according to git/svn branch . ~/.git_svn_bash_prompt # Added for Git autocomplete source ~/bin/git-completion.bash #PS1='[\u@\h \w$(__git_ps1 " (%s)")]\$ ' PS1="\W\$(__git_ps1) \$ " # Homebrew export PATH="/usr/local/bin:$PATH" 

En respuesta a las sugerencias de Tripleee, esto es lo que hay en .git_svn_bash_prompt:

  #!/bin/bash # # DESCRIPTION: # # Set the bash prompt according to: # * the branch/status of the current git repository # * the branch of the current subversion repository # * the return value of the previous command # # USAGE: # # 1. Save this file as ~/.git_svn_bash_prompt # 2. Add the following line to the end of your ~/.profile or ~/.bash_profile: # . ~/.git_svn_bash_prompt # # AUTHOR: # # Scott Woods <scott@westarete.com> # West Arete Computing # # Based on work by halbtuerke and lakiolen. # # http://gist.github.com/31967 # The various escape codes that we can use to color our prompt. RED="\[\033[0;31m\]" YELLOW="\[\033[0;33m\]" GREEN="\[\033[0;32m\]" BLUE="\[\033[0;34m\]" LIGHT_RED="\[\033[1;31m\]" LIGHT_GREEN="\[\033[1;32m\]" WHITE="\[\033[1;37m\]" LIGHT_GRAY="\[\033[0;37m\]" COLOR_NONE="\[\e[0m\]" # Detect whether the current directory is a git repository. function is_git_repository { git branch > /dev/null 2>&1 } # Detect whether the current directory is a subversion repository. function is_svn_repository { test -d .svn } # Determine the branch/state information for this git repository. function set_git_branch { # Capture the output of the "git status" command. git_status="$(git status 2> /dev/null)" # Set color based on clean/staged/dirty. if [[ ${git_status} =~ "working directory clean" ]]; then state="${GREEN}" elif [[ ${git_status} =~ "Changes to be committed" ]]; then state="${YELLOW}" else state="${RED}" fi # Set arrow icon based on status against remote. remote_pattern="# Your branch is (.*) of" if [[ ${git_status} =~ ${remote_pattern} ]]; then if [[ ${BASH_REMATCH[1]} == "ahead" ]]; then remote="↑" else remote="↓" fi else remote="" fi diverge_pattern="# Your branch and (.*) have diverged" if [[ ${git_status} =~ ${diverge_pattern} ]]; then remote="↕" fi # Get the name of the branch. branch_pattern="^# On branch ([^${IFS}]*)" if [[ ${git_status} =~ ${branch_pattern} ]]; then branch=${BASH_REMATCH[1]} fi # Set the final branch string. BRANCH="${state}(${branch})${remote}${COLOR_NONE} " } # Determine the branch information for this subversion repository. No support # for svn status, since that needs to hit the remote repository. function set_svn_branch { # Capture the output of the "git status" command. svn_info="$(svn info | egrep '^URL: ' 2> /dev/null)" # Get the name of the branch. branch_pattern="^URL: .*/(branches|tags)/([^/]+)" trunk_pattern="^URL: .*/trunk(/.*)?$" if [[ ${svn_info} =~ $branch_pattern ]]; then branch=${BASH_REMATCH[2]} elif [[ ${svn_info} =~ $trunk_pattern ]]; then branch='trunk' fi # Set the final branch string. BRANCH="(${branch}) " } # Return the prompt symbol to use, colorized based on the return value of the # previous command. function set_prompt_symbol () { if test $1 -eq 0 ; then PROMPT_SYMBOL="\$" else PROMPT_SYMBOL="${RED}\$${COLOR_NONE}" fi } # Set the full bash prompt. function set_bash_prompt () { # Set the PROMPT_SYMBOL variable. We do this first so we don't lose the # return value of the last command. set_prompt_symbol $? # Set the BRANCH variable. if is_git_repository ; then set_git_branch elif is_svn_repository ; then set_svn_branch else BRANCH='' fi # Set the bash prompt variable. PS1="\u@\h \W ${BRANCH}${PROMPT_SYMBOL} " } # Tell bash to execute this function just before displaying its prompt. PROMPT_COMMAND=set_bash_prompt 

Acabo de intentar comentar esta línea en .bash_profile

enter code here PS1 = "\ W \ $ (__ git_ps1) \ $"

Pero esto no pareció arreglarlo. Estoy abriendo una nueva window de terminal después de save el cambio, con suerte eso crea una nueva session de bash. Disculpas por mi ignorancia relacionada con bash!

En caso de ser útil para cualquier otra persona, la actualización de Git rompió la buena secuencia de commands de bash de Git y SVN bash de Scott Wood que estaba usando. Al leer los comentarios de ese guión, descubrí que solo necesitaba cambiar la línea 84 en .git_svn_bash_prompt para

 BRANCH="${state}($(git rev-parse --abbrev-ref HEAD))${remote}${COLOR_NONE} " 

para recuperar el nombre de la twig. Vea los comentarios en Scott's Gist para más detalles.