Skip to content

Instantly share code, notes, and snippets.

@mmktomato
Last active June 24, 2021 10:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mmktomato/615dba6c631dfbbeb2958a06ea40772f to your computer and use it in GitHub Desktop.
Save mmktomato/615dba6c631dfbbeb2958a06ea40772f to your computer and use it in GitHub Desktop.
[shell] プロンプトに Git のブランチ名をカラーで表示したい

[shell] プロンプトに Git のブランチ名をカラーで表示したい

注:2018年に書いたものです。

シェルのプロンプトに git リポジトリのブランチ名 (やその他の情報) を表示したいときには git-prompt.sh を使います。(git-prompt.sh の導入方法・使い方についてはここでは省略します。)

このときブランチ名をカラーで表示するには GIT_PS1_SHOWCOLORHINTS という変数を利用するのですが、この変数の使い方について日本語の情報が意外と少ないようなのでメモしておきます。

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つをやってあげればいいようです。

  1. GIT_PS1_SHOWCOLORHINTS に何かの値を入れて、
  2. __git_ps1PROMPT_COMMAND の中で使う。

また、「available only when using __git_ps1 for PROMPT_COMMAND or precmd.」とあるように __git_ps1PROMPT_COMMAND 環境変数の中で使わなければなりません (注1)。

この git-prompt.sh の冒頭には、__git_ps1PS1 環境変数の中で使う旨が書いてあるのですが、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' ' \\\$ '"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment