キマイラ・サイトは http://www.chimaira.org/です。
トラックバック/コメントは日付を気にせずにどうぞ。
連絡は hiyama{at}chimaira{dot}org へ。
蒸し返し歓迎!
ところで、アーカイブってけっこう便利ですよ。タクソノミーも作成中。今は疲れるので作っていません。
2015-09-30 (水)
Gitの解剖学的要点:「怖くない」の1/15圧縮版
雑記/備忘 | |
「もうGitは怖くない: 自信を持って使いたいあなたへ」は、「タイトルがミスリーディングで良くない」とか、「よけい怖くなる」とかの反応がありました。「怖い」という感情は個人差があるからしょうがないですね。タイトルはおそらく、「Gitの解剖学」あたりが受け入れられ易かったのかな。それとも、「ほんとうは怖いGit」?
僕自身が気になったことは2点で:
- 長過ぎる。読むのが大変。
- 男女の裸の写真が入っている。
裸の写真2枚は、いちおうストーリーを補完しているのでイイとしましょう。しかしあの長さは、たぶん自分でも読み返さないと思います。でも、書いてある内容を後で参照はしたいので、要点だけを箇条書きにまとめておきます。
- Gitは内部構造がまる見え。.git/ディレクトリを覗けばいい。
- Get http://www.chimaira.org/misc/git-quest-kit.shar . See https://github.com/m-hiyama/git-quest-kit .
- Gitオブジェクトとは、ID付きのバイト列データ。
- オブジェクトIDは40桁文字列。
- 「オブジェクトのID ←→ オブジェクトの中身」と1:1に対応。IDの衝突は心配すんな。
- .git/objects/ の下にオブジェクト達が入っている。
- オブジェクトは消せない、変更できない。保存後は永久凍結で、オブジェクトは増える一方。
- 消えるのではなくて、探しにくくなるだけ。ほんとに消すのは大変。
- オブジェクトデータベースはグラフ構造を持つ。オブジェクトIDによる参照が有向辺となる。
- コミットオブジェクト達は、親子関係を辺としてコミットグラフ(オブジェクトグラフの部分グラフ)を作る
- ファイルシステムオブジェクト達はツリー(複数、これも部分グラフ)を作る。
- 1個のコミットオブジェクトに1個のツリーが付随する。
- オブジェクトデータベースの外から、人間可読な名前によりオブジェクトを参照可能。これがラベル。
- 固定ラベル=タグ、変動ラベル=ブランチ、HEADは特別なラベル。
- タグもブランチもHEADも、どこを指してもいい。参照先は自由。
- タグもブランチもいくら作ってもいい。不要ならいつでも消せる。
- HEADだけは特別だから消すな(普通の方法では消せない)。
- HEADはブランチを経由した間接参照が普通。だが、直接参照もあり。
- HEADが(間接、または直接に)指しているコミットがカレントコミット。
- 新しく追加したコミットは、カレントコミットの子となる。
- コミットの追加後、HEADは(間接、または直接に)新しいコミットを指す。
- ブランチラベルが指すコミットのAOS(ancestor-or-self)集合のことも「ブランチ」と呼ぶことがある。
- 差集合 AOS(X)\AOS(Y) を Y..X と書く。逆順になるから注意しろ。
- 対称差集合 AOS(X)△AOS(Y) を X...Y と書く。X...Y = Y...X 。
- たいていの有向非循環グラフがGitコミットグラフとして実現できるほどの自由度がある。(クイズやってミソ)
コメントを書く
トラックバック - http://d.hatena.ne.jp/m-hiyama/20150930/1443573486
リンク元
- 111 https://www.google.co.jp/
- 41 https://www.google.co.jp
- 17 http://reader.livedoor.com/reader/
- 10 http://b.hatena.ne.jp/hotentry/it/daily
- 10 http://www.google.co.jp/url?url=http://d.hatena.ne.jp/m-hiyama/20100603/1275546996&rct=j&frm=1&q=&esrc=s&sa=U&ved=0CBcQFjAAahUKEwiwmvCxw53IAhWFLpQKHdLPCQ4&usg=AFQjCNHBlmSiJXtjcm2K7sKEfZK_xIG7eQ
- 7 http://t.co/um7R7ynCfF
- 7 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CB4QFjAAahUKEwjRt_SY1p3IAhULHZQKHbYhDIs&url=http://d.hatena.ne.jp/m-hiyama/20080805/1217915354&usg=AFQjCNGqrg6kk9ofIBUUyG1R6515veUhiw&sig2=WG2xzamEQIUO3Gr2oCKZdA
- 7 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CDAQFjACahUKEwiuireY2JvIAhXDjJQKHXShAZQ&url=http://d.hatena.ne.jp/m-hiyama/20140203/1391381365&usg=AFQjCNH9d78u7pFo60oVRnz2wboInB1-pw&sig2=JOCxIBh0nQCibzhb_wjSNA
- 7 https://www.reddit.com/
- 6 http://b.hatena.ne.jp/hotentry/it/プログラミング