Yamanetoshi
18 October 2014
yamanetoshi
K/VM 関連
- まとめサイトの作成
スライド URL いくつか不明なのがあるのと、動画を youtube に置く必要があるようで途中で断念。
A Hacker’s Guide to Git 確認
着手 1600 なので全部読めないと思います。とりあえず introduction はスルー。
Repositories
- Git repository はシンプルな key-value data store とのこと
- Blob は Git における基本的なデータ型、byte の纒まり、通常 file のバイナリ表現?
- Tree object は blob または他の tree object へのポインタを持つ
- Commit object は一つの tree object を指してて commit に関するメタデータ (parent commit など) を持つ
- Tag object は一つの commit object を指してていくつかのメタデータを持つ
- Reference は commit とか tag などの単一のオブジェクトを指すもの?
- Git repository はプロジェクトの root directory にある .git ディレクトリ
- リポジトリは git init コマンドで作成される
- 重要なディレクトリとして Git が保管する全ての object が保管される .git/object と全ての Reference が保管される .git/refs がある
Tree Objects
- Git における tree object はディレクトリと考えることができる
- tree object (directory) は blobs (files) のリストと他の tree objects (sub directories) を持つ
- README と src/hello.c なリポジトリで確認
- 二つの tree object がある (root directory と src directory)
- blob も tree も hash なキーを持っているのか
Commits
- commit object は基本的にポインタ
- 重要なメタデータのいくつかを持つ
- commit 自体は いくつかの metadata から作られた hash を持つ
- commit 時の tree (Tree Object で見たように Git は working tree 全体を再帰的に tree の中に作ることができる)
- parent commit の hash (commit は必ず直前 commit の hash を持つ)
- 作成者の名前と email address と変更された時刻
- committer の名前と email address と commit が作成された時刻
- commit message
- git show –format=raw というコマンドの出力について
- たしかに commit object と tree object がある
References
- Git では object は hash で識別される
- Git で云々する場合、hash を知っておくことは大切
- hash 覚えとけ、を要求されるorz
- そのために refs ってものがあると
- .git/refs に投入される
- branch って reference なのか
- .git/refs/heads/master というファイル
- 中身は hash (多分 master の HEAD)
- show および rev-parse というコマンド
- git も特別な reference として HEAD がある
とりあえず今日はここまで、ということで。別途他の場所で続きを書きます。
blog comments powered by Disqus