export PS1="…'__git_ps1'…"
Com '__git_ps1' entre aspas duplas, esse comando executa o comando __git_ps1 e atribui sua saída (e outro texto adjacente) à variável PS1 . Assim, seu prompt está mostrando o ramo que foi determinado quando seu .bash_profile foi executado.
Você precisa executar __git_ps1 cada vez que o bash exibir um prompt. (Na verdade, você não precisa executá-lo novamente até que as informações do git tenham sido alteradas, mas isso é difícil de detectar.) Há duas maneiras de fazer isso.
-
Inclua o texto literal
'__git_ps1'na variávelPS1. Certifique-se de que o bash esteja configurado para executar expansões de shell na string de prompt, com opromptvarsoption ativado; esse é o caso por padrão, mas pode ser desativado comshopt -u promptvars.PS1='\n\[…\]$(__git_ps1)\[…\]\$ ' -
Atualize o conteúdo do prompt por meio de um comando executado no
PROMPT_COMMANDvariável.update_PS1 () { PS1="\n\[…\]$(__git_ps1)\[…\]\$ " } shopt -u promptvars PROMPT_COMMAND=update_PS1
A propósito, o prompt é uma configuração de shell, não uma configuração global, então você deve configurá-lo em ~/.bashrc , não em ~/.bash_profile .