git使ってて便利だった拡張3つ。

gitを今の開発でガッツリ使うようになってすげー便利だと思った拡張を3つ紹介します。

もうね、これらなしではgit使えない。せっかくなので、導入方法と一緒に簡単な使い方も紹介します。

git-completion

f:id:yosuke_furukawa:20130226030925p:plain

gitの補完ツール。
コマンドラインに現在のブランチ名が出る。だけじゃなくて、タブで補完までしてくれる。

導入方法


以下の方法でスクリプトをダウンロードしてきます。
$ mkdir -p /usr/local/git/contrib/completion/; cd /usr/local/git/contrib/completion/
$ curl https://raw.github.com/git/git/master/contrib/completion/git-completion.bash > git-completion.bash
$ curl https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh > git-prompt.sh
$ chmod +x git-completion.bash
$ chmod +x git-prompt.sh

そしたらbashrcとかにこのスクリプトを読み込むようにしておきます。

$ cd ~
$ vim .bashrc

bashrc内

# git settings
source /usr/local/git/contrib/completion/git-prompt.sh
source /usr/local/git/contrib/completion/git-completion.bash
GIT_PS1_SHOWDIRTYSTATE=true
export PS1='\[\033[1;32m\]\u@\h\[\033[00m\]:\[\033[1;34m\]\w\[\033[1;31m\]$(__git_ps1)\[\033[00m\]\$ '

そしたらsourceで反映させてください。ちなみにexport部分は色を付けているだけなので、なくても問題はありません。
ただ色が付いているといろいろ捗るだけです。

$ source ~/.bashrc

使い方


.gitが存在する場所に行けば現在のブランチが見えていると思います。
他にもタブでブランチを保管することができるようになります。

f:id:yosuke_furukawa:20130228202316p:plain

ちょっと文字が明るいとか色が被って見づらいって時は、bashrcの32mとか34mとか書いてある部分をいじれば色を変えることができます。
エスケープシーケンス表が乗っているところを参考に変えてみてください。

参考にしたサイト:MacのターミナルでGitのブランチ名を表示する - アインシュタインの電話番号☎

tig


tigも便利。tigなしでは正直history見たりするの厳しい。手頃だし。

導入方法


こっちはもっと簡単。Homebrew が入っていれば入れるだけ。
$ brew install tig

Homebrew入っていないって人はportsでも入れられると思います、が、未検証。
こことか参考にしてみてください。
gitをブラウズするのに最適な「tig」をMacportsから入れてみた at HouseTect, JavaScriptな情報をあなたに

使い方


gitリポジトリ内でtigって打つだけ。
$ tig

これだけで、historyが一覧される。
f:id:yosuke_furukawa:20130228203813p:plain

vimと同じく 'j', 'k'で移動もできます。
Enterを押せばコミットの詳細もみれます。

f:id:yosuke_furukawa:20130228204226p:plain

詳細から一覧に戻るには 'q' を押すだけ。

他にも便利な使い方としては、blameするとき。

よくあるケースとして、

「おい、このコード誰が書いたんだよ!!」

って言われる時ありますよね、その時に無罪を証明するために "tig blame" を使いましょう。綺麗に色付けされます。(普通のgit blameでもいいんだけど、色がついてなくて見難い。)

$ tig blame <FILENAME>

f:id:yosuke_furukawa:20130228204655p:plain

あと、tig statusもgit statusを色付けして表示してくれる上に、'u'ってやるだけでstage/unstageを切り分けられる。

fugitive.vim


これはそこまで酷使してないけど、vim上でgitの状況知る時に便利。

導入方法


NeoBundle使っている人は、以下の行を追加して、NeoBundleInstallってやるだけです。
NeoBundle 'tpope/vim-fugitive'

他のplugin管理ツールを使っている人はgithubから取ってくるなりして導入してください。
tpope/vim-fugitive · GitHub

使い方


vimで開いた状態でvim commandを打って使用する。自分がよく使うのは以下の3つくらい。vimを開いた状態から使いたい場合にだけ使用する。

:Gstatus
git statusをvimのウィンドウに開く。

:Gread
現在開いているファイルをコミット直前の状態に戻す。いわゆる git checkoutする。ただし、実行直後はバッファに反映されるだけでファイルは変更されない。

:Gblame
git blameする、これも色がついていていい感じになる。