git :: bash プロンプトにブランチ名と作業ツリーの状態を表示する

「git status」「git branch」を日々数え切れないくらいタイプしている。
エイリアスで「git st」「git br」として、タイプ数を少なくしていたが、それでも手間だ。
ブランチ名と作業ツリーの状態をプロンプトに表示することで、そこそこ捗ります。


プロンプトの表示サンプル

bash プロンプトに水色で表示されているのが、ブランチ名です。
 ⇒ master ブランチで作業していることが分かります。

クリーンな状態(差分がない状態)

add されていない変更がある

add されていない新規ファイルがある

commit されていない変更がある場合


設定の仕方

1)まず「git-completion.bash」と「git-prompt.sh」ダウンロードします。

$ wget https://raw.github.com/git/git/master/contrib/completion/git-completion.bash
$ wget https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh


2).bashrc に下記を追記します。

PS1="\[\033[1;32m\]\$(date +%Y/%m/%d_%H:%M:%S)\[\033[0m\] \[\033[33m\]\H:\w\n\[\033[0m\][\u@ \W]\[\033[36m\]\$(__git_ps1)\[\033[00m\]\$ "

#
# git-completion.bash / git-prompt.sh
#
if [ -f /path/to/git-completion.bash ]; then
    source /path/to/git-completion.bash
fi
if [ -f /path/to/git-prompt.sh ]; then
    source /path/to/git-prompt.sh
fi
GIT_PS1_SHOWDIRTYSTATE=true
GIT_PS1_SHOWUNTRACKEDFILES=true
GIT_PS1_SHOWSTASHSTATE=true
GIT_PS1_SHOWUPSTREAM=auto


3)source コマンドで設定を反映します。

$ source ~/.bashrc