gitをしばらく使ってみても、いまいちよくわからないままでした。 なんとなくスッキリしない感じでした。
でも、ふと「ポインタ」という用語を見て 「C言語風に理解できるんじゃないか?」 と考えてみると、少しだけ理解できたような気分になりました。
| gitでの | C言語で言うところの |
|---|---|
| tree,commit,blob,tag等のオブジェクト | 構造体の実体 |
| ハッシュ | 構造体へのポインタ値 |
| パス("refs/heads/master"など) | 構造体へのポインタへのポインタ値 |
| ブランチ、軽量タグ | 構造体へのポインタ(型変数) |
| HEAD | 構造体へのポインタへのポインタ(型変数) |
| gitによる木、バージョン管理 | 構造体のリンクリスト |
という感じではないでしょうか? なんだか回りくどいような気もしますが…
追記1 : detached HEADの場合は直接コミットを指すようなので、HEADはvoid *型変数と言えるかもしれません。
0 件のコメント:
コメントを投稿