注:2018年に書いたものです。
シェルのプロンプトに git リポジトリのブランチ名 (やその他の情報) を表示したいときには git-prompt.sh
を使います。(git-prompt.sh の導入方法・使い方についてはここでは省略します。)
このときブランチ名をカラーで表示するには GIT_PS1_SHOWCOLORHINTS
という変数を利用するのですが、この変数の使い方について日本語の情報が意外と少ないようなのでメモしておきます。
git-prompt.sh の中身 を見ると以下のようなことが書いてあります。
If you would like a colored hint about the current dirty state, set GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on the colored output of “git status -sb” and are available only when using __git_ps1 for PROMPT_COMMAND or precmd.
というわけで、次の2つをやってあげればいいようです。
GIT_PS1_SHOWCOLORHINTS
に何かの値を入れて、__git_ps1
をPROMPT_COMMAND
の中で使う。
また、「available only when using __git_ps1 for PROMPT_COMMAND or precmd.」とあるように __git_ps1
は PROMPT_COMMAND
環境変数の中で使わなければなりません (注1)。
この git-prompt.sh
の冒頭には、__git_ps1
は PS1
環境変数の中で使う旨が書いてあるのですが、GIT_PS1_SHOWCOLORHINTS
を使う場合は PROMPT_COMMAND
を使う必要があるので注意しましょう (注1)。
注1・・・ bash の場合です。zsh の場合は precmd
です。詳しくは git-prompt.sh
を見てください。
というわけで、 .bashrc
やら .bash_profile
やらには以下のように書きました。
GIT_PS1_SHOWCOLORHINTS=true
PROMPT_COMMAND="__git_ps1 '\u@\h \w' ' \\\$ '"