bash-git-completion、__git_ps1のオプションを設定して様々な情報を表示する

bash-git-completionというbash向けのgitコマンド補完パッケージがありまして、プロンプトに各種便利情報を表示するための __git_ps1 関数というのが定義されている。標準だと今いるブランチが表示されて便利ですが、オプションを設定することでさらにいろいろな情報が表示できる。


オプションはGIT_PS1_SHOW**** みたいな環境変数で定義。

export GIT_PS1_SHOWUNTRACKEDFILES=1
export PS1='... $(__git_ps1) ...'

のように使う。

オプションの詳細な解説については、ソース(/etc/bash_completion.d/git)にコメントが書いてあるのでそこを読んでください。

あと、cygwinだとgitの実行が遅いのでオプション盛りすぎるとプロンプト表示が遅くなるので気をつけて!!

使える変数一覧

GIT_PS1_SHOWUPSTREAM
現在のブランチがupstreamより進んでいるとき">"を、遅れているとき"<"を、遅れてるけど独自の変更もあるとき"<>"を表示する。オプションが指定できるけど(svnをトラックするかとか)ここでは解説しないのでドキュメント読んでください。
GIT_PS1_SHOWUNTRACKEDFILES
addされてない新規ファイルがある(untracked)とき"%"を表示する
GIT_PS1_SHOWSTASHSTATE
stashになにか入っている(stashed)とき"$"を表示する
GIT_PS1_SHOWDIRTYSTATE
addされてない変更(unstaged)があったとき"*"を表示する、addされているがcommitされていない変更(staged)があったとき"+"を表示する