git ちゃんさま
git に関する文書。っても全部 http://git-scm.com/documentation にあるのなんだけど。とりあえず全部読んでおくべきなんだけど個人的にこの順番で読むと理解が進むと思う順に挙げる。てかつくづく導入の敷居が高い tool だな。と思ったけど習得曲線ののびが悪いだけで習熟する範囲はそんなに広くないから一度覚悟を決めてしまえば何とかなる感じ。まず local での操作を覚えてそれで生活しつつ branch や remote の管理を覚えていくというのが鉄板な気がするなぁ。
- SVN Crash Course
- http://git-scm.com/course/svn.html
- svn 関係触ったことのあるひと ( TortoiseSVN 含む ) はまず真っ先に読むべき。というのも svn を使ったことのあるひとにとっては git は紛らわしい単語の使い方をしているので ( revert するには checkout を使うとか、 checkout には複数の用途があるとか ) 。 svn に慣れている人ほど誤解をつぶすために最初に読むべき文書だと思う。
- gittutorial(7)
- http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html
- http://www8.atwiki.jp/git_jp/pub/Documentation.ja/tutorial.html
- ここは手を動かしながらやるべき。すべて理解できていなくても最低限 init/clone -> add -> commit の流れを覚えれば十分だと思う。これと下の tutorial 2 までが基本。
- gittutorial-2(7)
- http://www.kernel.org/pub/software/scm/git/docs/gittutorial-2.html
- http://www8.atwiki.jp/git_jp/pub/Documentation.ja/tutorial-2.html
- git が取り扱っている object に関しての説明と index について。この知識は以降の文書を読む際に必須なのできちんと理解すべき。 object に関してはそんなでもないけど index に関しては理解してないと add/commit/reset/rm/mv という基本的な command すら十分に使えないので。
- Git User's Manual (for version 1.5.3 or newer)
- http://www.kernel.org/pub/software/scm/git/docs/user-manual.html
- http://www8.atwiki.jp/git_jp/pub/Documentation.ja/user-manual.html
- 長いけど一通り読むのが吉。とは言っても使うだけなら 1 〜 6 章までで済むんだけど。あとなにげに 11 章の glossary が役に立つ。とはいえここまで一気にくるのはツライと思うので tutorial 終了後はしばらく git を使いながら生活して、なじんだあたりでこれを読み進めるというのがいいと思う。
- Everyday GIT With 20 Commands Or So
- http://www.kernel.org/pub/software/scm/git/docs/everyday.html
- どういう風に git を使って開発をするのかによって段階的に使う command 群とその使い方を説明してる文書。 repository に関する基本的な操作 -> 個人で管理する場合の操作 -> ある project に参加する場合の操作 -> project の管理に必要な操作 -> repository 公開に必要な操作という感じでけっこうまとまってる。自分に必要なところまで各 command の man 見つつ手を動かしながらやると復習完了。
- Git for Computer Scientists
- http://eagain.net/articles/git-for-computer-scientists/
- git が内部でどういう風に動いているのかがわかりやすく説明されている。普通に単方向リストを使って複数種類の object で木構造作ってるだけだ ( ってここらへんの考え方は昔から変わらないのかな ) 。だから開発ラインのことを branch っていったり commit が到達可能 ( reachable ) とか言うわけだね。
- ただ sha1 hash で一意に node を特定できたり ( だから HEAD/origin/master なんていう alias が用意されてたり自分で好きな tag をつけたりできる = ひとにやさしい ) 、そのおかげ ( そのために ? ) で remote も同じ土台に載せられるようになった ( ある時点において各 local repository に存在する tree は remote と同一の node 群で構成された同一の tree なので独自に発展させても差分が容易に検出可能 ) というのがすごいところなのかな。
- …やっぱり node を一意に特定できる、というのが最大の idea な気がするな。
- Git cheat sheet
- http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html
- standalone のときとか持ってると楽かも。