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