August 25, 2009

読書: 「入門git」

入門git 入門git
でびあんぐる

オーム社 2009-08-12
売り上げランキング : 2359

Amazonで詳しく見る by G-Tools

これ読みましたー。
最近は日常的に git を使っててそこそこ詳しくなってたつもりだけど、基本をちゃんと抑えておくという意味でこれは読んで良かった。

久々にブログ書いてるので文章がうまく書けません。

git のインストール

えっと。
そうそう、git はソースから入れるのが一番いい気がした。

以下のようにするとドキュメントもインストールされていいらしい。

make prefix=/usr/local all doc
sudo make install install-doc

Mac の場合は以下のようにすると git-svn も入るしいい感じっすね。

sudo port install git-core +svn +doc

git diff

git diff はたぶん一日一万回くらい使ってるけど、このを本読むまで --cached オプションなんていう便利なオプションがあるのを知らなくてすごく損してたなーと思った。
git diff をオプション無しで実行すると、git によって管理されていてかつまだステージされてない(index に入っていない、つまり add してない)変更の差分が出力される。
git diff--cached オプションを付けて実行するとステージした変更と HEAD との差分を見ることができる。
今まではそういう差分を見るためにわざわざ git commit -v を使ったりしてた。
git diff には --stat なんてオプションもある(使ってないけど)。

git blame

そうそう、git blame を使えるようになりたいと思いつつも全然使ってない。
あ、普通に使う分には git blame README.rdoc とかやればいいのか。
そうすると以下のような感じでファイルのどの部分を誰が編集したのかとかがわりと簡単にわかる。

...
da557a52 (jugyo         2009-03-24 20:51:04 +0900  43)   % sudo gem install termtter
43752d7d (mattn         2009-01-08 14:13:28 +0900  44)
31e0dd9c (jugyo         2009-03-24 15:19:12 +0900  45) == CONFIGURATION:
a9a95484 (ujihisa       2009-01-06 18:43:43 +0900  46)
cd062ba3 (jugyo         2009-03-24 15:21:25 +0900  47) Termtter generates a configuration file named '~/.termtter/config'.
a9a95484 (ujihisa       2009-01-06 18:43:43 +0900  48) You can edit the file anytime.
d5ad26db (jugyo         2009-01-05 15:28:09 +0900  49)
da557a52 (jugyo         2009-03-24 20:51:04 +0900  50)   % vim ~/.termtter/config
...

行を指定する場合は以下にように -L オプションを使うのか。

git blame -L 10,20 README.rdoc

なるほどね。
さらに -L オプションには正規表現を指定できるらしい。

git blame -L"/def call_commands/",+10 lib/termtter/client.rb

これは便利だ。
git blame の出力に色が付いたらもうちょっとわかりやすいのにな。

git rebase -i

git rebase で個々のコミットをいじくり回すなんてことは今までやってなかったけど、この本読んで git rebase -i をやたら使うようになった(-i がポイント)。
git rebase -i は対話的に rebase を行うためのコマンドで、素晴らしく便利です(使い方は本書を読んで調べてください)。
僕はだいたい人間がやりそうなミスは一通りやってしまうたちなので、「あのコミットにこれも入れておけば良かったー」というような状況がしょっちゅうあって、そういう時に git rebase -i とか git commit --amend はとてもとても役に立ちますね。

branch と rebase について

branch と rebase について理解しないで git を使うのは結構つらいと思うけど、逆に考えるとそれらをだいたい理解していればたいていの場合はなんとかなる(はず)。

github T シャツについて

「入門git」とは全然関係ないんだけど、こないだ github T シャツを勝手に作った。

Picture 26

というわけで、今すぐ買うといいと思うよ!

入門git 入門git
でびあんぐる

オーム社 2009-08-12
売り上げランキング : 2359

Amazonで詳しく見る by G-Tools