Gitの中身を説明してみる
- Gitではソースコードのツリー構造をグラフデータベースで管理している
Git用語 | ファイルシステム | graph用語 |
---|---|---|
blob | ファイル内容 | エッジ |
tree | ディレクトリ | ノード |
- Gitではバージョンもグラフデータベースで管理している
Git用語 | 一般的なVCS用語 | graph用語 |
---|---|---|
commit | リビジョン | エッジ |
parent | 履歴(?) | ノード |
SVNなどではシーケンスナンバーで識別されるバージョン間のつながりを、commit同士の親子関係という有向グラフで管理している
commitオブジェクトは、ソースコードのスナップショットのRootとなるtreeオブジェクトへのノードをひとつ持つ
- git commitによって行われる操作
-
ソースコードの現在の状態を、スナップショットとしてグラフデータベースに記録する
-
今回のコミットを示すcommitオブジェクトを作成する
-
そのオブジェクトに…
-
スナップショットのRootへのノードを持たせる
-
一つ前のcommitオブジェクトへのノードを持たせる
-
現在のブランチのHEADを、今作ったcommitに書き換える
- ブランチとは、任意の名前を持ち、任意のcommitオブジェクトを指すノードである