web-dev-qa-db-ja.com

ユキヒョウのbashプロンプトにgitブランチを追加する

私はこれを使用しています:

$(__git_ps1 '(%s)')

動作しますが、ディレクトリを変更したり、新しいブランチをチェックアウトしたりしても更新されません。私もこのエイリアスを持っています:

alias reload='. ~/.bash_profile'

サンプル実行:

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

ご覧のとおり、正しく設定されていますが、bash_profileをリロードした場合に限ります。私はこれに多くの時間を無駄にしてきました。ユキヒョウにbashを使っています。助けてください!

編集:あなたはgithubで私のドットファイルとPS1を設定しているファイルを見ることができます ここ

8
crayment

問題は解決しました。

やっていた:

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

そして私はする必要がありました:

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

ドル記号をエスケープする必要があります。そうしないと、1回実行され、で置き換えられます。

9
crayment

最新のgitは__git_ps1をbash_completionから移動するため、個別にソースする必要があることに注意してください。 https://superuser.com/a/477749/66255 を参照してください。

0
studgeek

おそらく$Prompt_COMMANDを使用する必要があります