Adicionando ramo git ao prompt do bash no snow leopard

8

Eu estou usando isso:

$(__git_ps1 '(%s)')

Funciona, no entanto, não é atualizado quando troco de diretório ou compro uma nova filial. Eu também tenho este alias:

alias reload='. ~/.bash_profile'

Exemplo de execução:

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 definido corretamente, mas somente se eu recarregar o bash_profile. Eu perdi muito tempo nisso. Estou usando o bash no snow leopard. Por favor ajude!

Edit: Você pode ver meus dotfiles no github e o arquivo configurando o PS1 aqui

pagamento
fonte

Respostas:

9

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, ele é executado apenas uma vez e substituído.

pagamento
fonte
0

Você provavelmente precisa usar $PROMPT_COMMAND

Pausado até novo aviso.
fonte
Obrigado. Tentei jogar com PROMPT_COMMAND, mas não estava trabalhando com minha configuração atual. Você pode ver o arquivo que torna o cenário aqui: github.com/crayment/dotfiles/blob/master/bash/config
crayment