Git でディレクトリのブランチを bash で常に表示する、おまけでコマンドの補完

こういうところに吐き出さないと覚えていられない年齢になりました、白音です。
さて、今回は久しぶりに技術的なお話を。Qiita に書けって? ごもっとも。

最近 Git を使い始めて色々遊ぶようになったのですが、ブランチをフラフラしている間に今作業中のブランチがどのブランチだったのか結構忘れます。
間違って push した時にはもうね。チェックしなかった自分が悪いことに愕然としつつ、疲れの所為にするしかありません。

というわけで、今自分がいるディレクトリのブランチを常に表示できないかなぁと思ったわけです。
まぁインターネット上には様々な先駆者がいらっしゃるので、その方達に敬意を払いつつここに備忘録として纏めておきます。

動作想定環境は CentOS です。Mac での解説が巷にあふれていますが、Mac なんて面白そうなオモチャを持ってないので CentOS でいきます。
Windows は嫌。
当時 Git が世に出始めたころ、興味本位で使おうとしていろんなものをインストールさせられた挙句、うまく動かなかったトラウマしかない。 殊更、今の Gitに関してもフロントエンドのソフトウェアが使いづらい。
結局小細工しようとすると Windows 版 Cygwin から離れられないなら、もうリモートにある CentOS でいいや。

前置きが長くなりましたが、いよいよ具体的な手順に入ります。

まずはちょろちょろっとコマンドを並べます。

    wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
    wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
    vi ~/.bashrc

はい、まず Git から git-prompt.sh と、git-completion.bash を落としてください。
で、自分の .bashrc を開きます。

    source ~/git-prompt.sh
    source ~/git-completion.bash
    PS1="\h@\u:\W\$(__git_ps1) \$ "

あとは上記を自分の .bashrc に追記したら、反映します。

    source ~/bashrc

よく、巷では
__git_ps1 が存在しません 」とか、
__git_ps1 コマンドが見つかりません
__git_ps1: command not found

とか怒られて、「???」ってなってる人が多いようですね。 _gitps1 が単純に定義されていないだけなので、git-completion を検索すれば出てくると思います。

さて、これで git のコマンドが補完できるようになりましたね。 また、PS1 の影響で git 配下のディレクトリへ移動すると

@user_name:Dirname (branchname) $ 

のような表示になったと思います。Cool! これでどのプロジェクトのどのディレクトリへ行っても、どのブランチなのか一目瞭然ですね!