Ok, problema resolvido.
Eu estava fazendo:
export PS1="$(__git_ps1 '(%s)')"
e eu precisava fazer:
export PS1="\$(__git_ps1 '(%s)')"
Você precisa escapar do cifrão, caso contrário, é apenas executado uma vez e substituído.
Estou usando isso:
$(__git_ps1 '(%s)')
Funciona, no entanto, não é atualizado quando altero diretórios ou faço check-out de um novo branch. Eu também tenho esse alias:
alias reload='. ~/.bash_profile'
Execução de amostra:
user@machine:~/dev/rails$cd git_folder/
user@machine:~/dev/rails/git_folder$reload
user@machine:~/dev/rails/git_folder(test)$git checkout master
Switched to branch 'master'
user@machine:~/dev/rails/git_folder(test)$reload
user@machine:~/dev/rails/git_folder(master)$
Como você pode ver, está sendo configurado corretamente, mas somente se eu recarregar o bash_profile. Eu desperdicei muito tempo com isso. Eu estou usando bash no snow leopard. Por favor ajude!
Edit: Você pode ver meus arquivos no github e o arquivo definindo o PS1 aqui
Você provavelmente precisará usar $PROMPT_COMMAND
Observe que o último git move __git_ps1 para fora do bash_completion, portanto, é necessário fazer isso separadamente. Consulte o link .
Tags bash git bashrc osx-snow-leopard macos