git, git-flowの補完とプロンプトにブランチ名を表示する
JS界隈じゃないけどTips的な記事を。
今どきGitを使わないで開発することはないと思うので、
開発しやすいように補完を入れましょう。
それとgit-flowなど、たくさんのブランチを切り替えて開発するときに
便利なのでプロンプトにブランチ名を表示しましょう。
はじめに
MacOSXユーザ向けの記事です。
Homebrewを使っている前提です。
gitを入れる
もう既にインストール済みなら読み飛ばしてください。
gitはhomebrewでさくっと入れましょう。
$ brew install git
gitの補完を入れる
まずはgit-completion.bashというファイルをホームディレクトリに置きます。
homebrewでgitをインストールしている場合、
/usr/local/Cellar/git/1.8.2.3/etc/bash_completion.d/git-completion.bash
↑のあたりに置いてあります。
これをホームにコピーしましょう。
$ cp /usr/local/Cellar/git/1.8.2.3/etc/bash_completion.d/git-completion.bash ~/.git-completion.bash
このgit補完用のファイルをターミナル起動時に読み込むように
.bashrcに追記して、設定を反映させます。
$ echo ~/.git-completion.bash >> ~/.bashrc $ source ~/.bashrc
これで補完が効くようになりました。
試しに $ git と打ってタブキーを2回押してみるとサブコマンドの一覧が表示されます。
※ もしこのとき初めて .bashrc を生成したのであれば、
.bashrcがターミナル起動時に自動的に読み込まれていないかもしれないので、
下記のコマンドを実行してください。
$ echo source ~/.bashrc >> ~/.bash_profile
git-flowを入れる
既にインストール済みなら読み飛ばして下さい。
git-flowの説明も詳しくしたいところですが、多人数で開発するときは
とても重宝するのでぜひ導入してほしいです。
nvie/gitflow · GitHub
git-flowは以下のコマンドで一気に入ります。
$ wget --no-check-certificate -q -O - https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | sudo bash
※ もしwgetコマンドがまだインストールされていなかったら
$ brew install wget でインストールしてください。
git-flowの補完を入れる
まずは git-flow用の補完ファイルをローカルに落としてきます。
$ cd ~ $ wget https://raw.github.com/bobthecow/git-flow-completion/master/git-flow-completion.bash $ mv git-flow-completion.bash .git-flow-completion.bash
落としてきたファイルを .git-flow-completion.bash にリネームしたら、
こちらもターミナル起動時に読み込むようにします。
$ source ~/.git-flow-completion.bash >> ~/.bashrc $ source ~/.bashrc
これでgit-flowの補完が効くようになりました。
プロンプトにブランチ名を表示させる
やり方は git-completion.bash の中に書いてました。
まずはブランチ名を表示させるためのスクリプトをホームディレクトリに置いて、
bashrcで読みこむように設定します。
$ cp /usr/local/Cellar/git/1.8.2.3/etc/bash_completion.d/git-prompt.sh ~/.git-prompt.sh $ echo source ~/.git-prompt.sh >> ~/.bashrc
これで準備ができたので、下記の呪文を.bashrcに追記します。
GIT_PS1_SHOWDIRTYSTATE=true PS1='\[\033[40;1;32m\]\u\[\033[2;32m\]@\[\033[0m\]\[\033[40;32m\]\h \[\033[1;36m\]\w \[\033[31m\]$(__git_ps1 "[%s]")\[\033[00m\] \[\033[0m\]\[\033[40;2;37m\]`date +"%Y/%m/%d %p %H:%M:%S"` \[\033[0m\]\n\\$ ' export PS1=$PS1
色設定が可読性を大きく下げてしまってますが、
$(__git_ps1 "[%s]")という部分がブランチ名の表示にあたります。
あとユーザ名とホスト名とカレントディレクトリのパスと現在時刻を表示する設定なので、長いなーと思ったら何か削って自分好みにしましょう。
保存したら.bashrcを再読込します。
$ source ~/.bashrc
これでgitで管理されているプロジェクトに行くと
プロンプトにブランチ名が表示されるようになります。
おわりに
プロンプトの設定まわりが読みにくすぎる。
とりあえずこれで快適なgitライフが迎えられるはず。
個人的にはgitのコマンド操作はターミナルでやって、
コミットログとdiffはsourcetreeで見るって感じで作業してます。
Free Mercurial and Git Client for Windows and Mac | Atlassian SourceTree
SourceTreeは無料で使えてGitFlowも対応しててコマンドが苦手な人は
こっちだけでもいいかもしれない。