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 opromptvars
option 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_COMMAND
variá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
.