Hinzufügen des Git-Zweigs zum Bash-Prompt auf dem Schneeleopard

2130
crayment

Ich benutze das:

$(__git_ps1 '(%s)') 

Es funktioniert jedoch nicht, wenn ich Verzeichnisse ändere oder einen neuen Zweig auschecke. Ich habe auch diesen Alias:

alias reload='. ~/.bash_profile' 

Probelauf:

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

Wie Sie sehen, wird es richtig gesetzt, aber nur wenn ich bash_profile neu lade. Ich habe viel zu viel Zeit damit verschwendet. Ich benutze Bash auf Schneeleoparden. Bitte helfen

Bearbeiten: Sie können meine Punktedateien auf github und die Dateieinstellung der PS1 hier sehen

8

3 Antworten auf die Frage

9
crayment

Okay Problem gelöst.

Ich habe getan:

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

und ich musste tun:

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

Sie müssen das Dollarzeichen entgehen, andernfalls wird es nur einmal ausgeführt und ersetzt.

0
Dennis Williamson

Sie müssen wahrscheinlich verwenden $PROMPT_COMMAND

Vielen Dank. Ich habe versucht, mit PROMPT_COMMAND zu spielen, funktionierte jedoch nicht mit meinem aktuellen Setup. Die Datei, die die Einstellung vornimmt, kann hier angezeigt werden: http://github.com/crayment/dotfiles/blob/master/bash/config crayment vor 14 Jahren 0
0
studgeek

Note that the latest git moves __git_ps1 out of bash_completion so you need to source it separately. See https://superuser.com/a/477749/66255.