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)
  • gittutorial-2(7)
  • Git User's Manual (for version 1.5.3 or newer)
  • 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