zshのプロンプトにgitのブランチを表示させた

なんか動かなくなったのでgit checkoutで昔のリビジョンに戻して,ちょこちょこ作業して,さあサーバにバックアップ送るか,とい思ってgit pushしてもAlready up-to-dateと言われて「あれれ?」と30分ぐらい悩んで,結局ブランチがmasterじゃなかったから,というオチでした.これを防ぐためにgitレポジトリの中にいるときはzshのプロンプトの右端にブランチ名を表示させるようにしてみました.

http://gyazo.com/24b927d74a672d464beec8073b062573.png

参考にしたサイトはGitのブランチ名をRPROMPTに表示する方法を改良してみた - Hello, world! - s21gですが,

git branch &> /dev/null | grep

でなんでgrepの標準入力に渡るのかわからないので2>に替えたり,ディレクトリは既に表示してくれてるので表示しないようにしたり改造しました.フックに使われるchpwdが以前の.zshrcとかぶっていたのでちょっとはまりました.コピペ厨の方は注意してください.

どうなったかはgithubにのせました.dotfiles/.zshrc at master · suztomo/dotfiles · GitHub