■ 入門Gitでまじめに勉強した
濱野さんの入門Gitが先行発売されると聞いて、さっそくゲットしました。
git本を執筆中だというのはずいぶん前から聞いてまして、ものすっごく楽しみにしていました。そして、楽しみにしていた甲斐がありました。知らなかった事がたくさん載ってて、特に運用ベースの説明だから実際の利用シーンを思い浮かべながら楽しく読む事ができました。
これまでは、同じく濱野さん著の WEB+DB Press の例の記事くらいの知識しかなくて、branch 便利だなー程度の認識しかありませんでした。本書はその WEB+DB Press をさらに発展させたような、そんな印象があります。説明がより具体的かつ詳細になり、さらに上級のトピック、たとえば歴史の改竄や間違いからの復帰など、非常にお腹いっぱいになりました。
反対に、コマンドの説明があんま無くて結構ドライに感じた部分がありました。どんなコマンドがあってどんなオプションが使えるのか、そういう一覧みたいなものは無いです。この辺は黙って man 読めよ、という事なんでしょうね、きっと。
基礎から応用まで、どんな場合にどんな事をすればいいのか包括的に解説されているので、早く試してみたい事でいっぱいです。
特に感銘を受けた箇所
- Chapter13. リモートリポジトリ定義 - どのブランチにも属さない状態について P.229 に書いてある。使い所を聞くと納得の機能。
- Chapter15. 歴史の2分探索 - いつのまにか入ったバグを改修するために、過去のコミットをチェックアウトしながら動作チェックしていく、のを効率よくやる仕組みが組み込まれてるんですって!すごいよ bisect。
- Chapter16. 間違いからの回復 - 特に P.283 の reflog が素晴らしい。どんなミスをしても、確実に undo 出来るって事になるのかな。
結論: git 便利過ぎて死にそう。
Posted by Kyosuke Takayama at 2009-09-18 (Fri) 21:06 printable version
1) ふ (2009-09-19 (Sat) 04:38)
最後の方にマニュアル的なリストをつけることも考えなかったわけではありません。でも、お金払った本にマニュアルに書いてあることのコピーがえんえんと載ってたら、なんだか損した気になるでしょ?
入門書である本書のひとつの目的は、マニュアルを効果的に使えるための地固めをすることです。gitメーリングリスト等での新規ユーザの挙動を見ていると、必要な基礎概念を理解する前にいきなりマニュアルを見ようとして、それでかえって混乱していることが往々にしてあります。例えばrevertというコマンド名を思い付いてgit revertのマニュアルを見る。「いままでエディタで色々編集してきたの、みんなでたらめな変更だから捨てたい、どうしたらいいの」という状況に使えるオプションを見たくて、オプションのリストの部分にいきなり行ってもそんな記述がない。
もともとrevertはそういう用途に使うコマンドではないので、そんなオプションがないのは当たり前で、正解は他のコマンドを使うこと、これはrevertマニュアルの先頭にも書いてあるのですが、マニュアルページは基本的に字引きのようなもので、基礎がわかった上であちこちつまみ食いするのが効率的にできることを主たる目的とした構成になっていますから、先頭の記述部分をとばしてオプションのリストだけ見て分かるひとにはそれでよいのですが、新規ユーザが全体の構成を理解せずにいきなりマニュアルから入ってもなかなか効果的に習得できません。
マニュアルを効果的に使えるための地固めをする、という目的の入門文書は別にチュートリアルがあるのですが、あまり使われていないようなのを残念に思っていました。日本では先月翻訳がでたSwicegoodの本を最初に、この1-2年の間にようやくまとまったGit本が出始めましたが、これらの本がそういう地固めに役立ってくれるよう希望しています。