Ajout d'une branche git à l'invite bash sur le léopard des neiges

8

J'utilise ceci:

$(__git_ps1 '(%s)')

Cela fonctionne mais il ne se met pas à jour lorsque je change de répertoire ou que je vérifie une nouvelle branche. J'ai aussi cet alias:

alias reload='. ~/.bash_profile'

Exemple d'exécution:

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)$

Comme vous pouvez le voir, il est correctement défini, mais uniquement si je recharge bash_profile. J'ai perdu beaucoup de temps à ce sujet. J'utilise bash sur le léopard des neiges. Aidez-moi!

Edit: Vous pouvez voir mes fichiers dot sur github et le fichier définissant la PS1 ici

crayon
la source

Réponses:

9

Bon problème résolu.

Je faisais:

export PS1="$(__git_ps1 '(%s)')"

et je devais faire:

export PS1="\$(__git_ps1 '(%s)')"

Vous devez échapper au signe dollar sinon il n'est exécuté qu'une seule fois et remplacé.

crayon
la source
0

Vous devez probablement utiliser $PROMPT_COMMAND

En pause jusqu'à nouvel ordre.
la source
Merci. J'ai essayé de jouer avec PROMPT_COMMAND mais ne fonctionnais pas avec ma configuration actuelle. Vous pouvez voir le fichier qui fait le réglage ici: github.com/crayment/dotfiles/blob/master/bash/config
crayment