Gitポケットリファレンスとoh-my-zshとtig
毎日Gitを使って開発している。
ちょっと前にgit-flowかGitHub Flowか的な話もいろいろあって楽しい。
git-flowとGitHub Flowのどちらがいいか、というのは、開発しているサービスに合っているものを選んで、開発しているサービスに合わせて適度に変更していくのがよいと思う。Gitの使い方には、サービスの文化が現れるみたい。
あとGitHub Kaigi、楽しかった。
ずーっとSubversionを使っていて、ここ1年で本格的にGitを使い始めた。周回遅れのスタートだけど、いまは楽しい。
ずーっとひとりGitだった。スライドや本を読んでも、なんだかよくわからなかった。やっぱり多くのひとと使うようになって、あれこれ覚えたり、メリットを感じるようになった。
Gitを使う上であれこれ読んだり試したりしたけど、「Gitポケットリファレンス」と「oh-my-zsh」と「tig」がよかった。ので、その話を。
Gitポケットリファレンス
いろいろなスライドや解説がWebにはあるけど、Gitを使うならまずこの本を読むのがいいと思う。
この本のお陰で、人並みにGitが使えるようになった。Git初心者は、まずこの本買うのがよいと思う。いろんな技術書やリファレンスを読んできたけど、この本はとてもわかりやすかった。
第1章の「まずはGitを使ってみよう」でGitの概要が書いてある。ここが、短い文章で必要なことがまとまっていてすてき。長くて難しいけど詳細な説明はたくさんあるけど、短くて要点を絞ってあるのでわかりやすい。
第2章のリファレンスを読んで、わからなくなったら、最初のチートシートや第1章を読み返すといいと思う。Subversionとは異なる概念が多いから、読み返すことでGitの概念を徐々に理解していけると思う。
第2章のリファレンスに目を通しておくと、Gitでできることが分かる。Gitでは様々な操作があって、そんなこともできるの?って感じのものも多い。だからリファレンスを読んでおくと、この操作はできるはずだけど、どうやるんだっけ?って感じで読み返せる。
できること、できないことをざーっと知っておくといいよね。
oh-my-zsh
zsh自体はかなり前から使っていて、ここ数年はoh-my-zshを使っている。らくちん。
oh-my-zshいれると、ターミナルにカレントディレクトリの現在のブランチ名がでてきたりする。addしてない、commitしてない、とかが分かる。それだけでも便利だけど、すてきなaliasがたくさん入る。
よく使ってるのはこんなalias。短くて、左手だけでタイプできるものが多くて、地味に幸せ。
alias gd='git diff' alias gdc='git diff --cached' alias gca='git commit -v -a' alias gb='git branch' alias gss='git status -s' alias ggpull='git pull origin $(current_branch)' alias ggpush='git push origin $(current_branch)'
ggpushとか、すごく楽。gd、gdcもかなり使う。tig立ち上げるまでもないときに使う。gssにはさらに省略してgsってaliasを当てて使ってる。
shに興味がなかったり、こだわりのないひとほど、oh-my-zsh入れるといいと思う。インストールも簡単だし。よく使うコマンドだからこそ、さくっと使えるようにしておきたい。
oh-my-zshいれて、コミットメッセージ入れるエディタがemacsになって慌てたら、git config --global core.editor vim
するとvimになるよ。
tig
tig、もう手放せない。tigって便利らしいけど、でも普通にコマンドでもできることだし、って思っていた。ちょうど開発環境を切り替えることがあって、気になっていたから入れて、使ってみた。そして、なんだこれ、便利だ、やばい、ってなって愛用している。
この記事がすてきなので、細かいことは省略。
使ってみてこそ、便利さが体感できる。tigを使うと、vimっぽいキーバインドあれこれできる。そのおかげで、gitのlogがさくさく見れる。diffも見やすい。インデックスへの操作もしやすい。commitもできる。
単発の操作であればoh-my-zshのaliasで十分なんだけど、複数のgitコマンドを使うような操作はtigが圧倒的に便利だと思う。revision(sha)を指定する操作や、historyやblameをみたいときとか。あれこれ調べるときにはtig、みたいな感じで使い分けてる。
まとめ
Git使うなら「Gitポケットリファレンス」買って、「oh-my-zsh」と「tig」入れてみようよ。
このエントリ読んで、やっぱりGitはよくわからねぇなーって思ったら、とりあえず「Gitポケットリファレンス」を読んでみるといいと思う。
こういう、みんなが使っていていろいろなツールがあるものって、他の人がどう使ってるか気にならない?とりあえず自分の使ってるものについて書いてみた。
これ便利だぜ!ってのがあったら、教えてください :)