操作して学ぶ

gitコミットグラフ可視化

commitbranchcheckoutmerge を1ステップずつ再生し、 コミットの親子リンク(DAG)ブランチ・HEADのポインタがどう動くかを追えます。 gitの「なんとなく怖い」が、「ブランチはただのポインタ」だと腑に落ちます。

c1最初のコミットHEAD→main

$ git commit -m "最初のコミット"

まだ何も無いところに最初のコミット c1 ができ、ブランチ main と HEAD がそれを指します。

1 / 9

ここが分かる

  • git branch はコミットを1つも作らず、「今のコミットを指すポインタ」を増やすだけ。
  • git checkout は HEAD を別のブランチへ動かすだけ。だから軽い。
  • コミットは親へのリンクを持ち、履歴は有向非巡回グラフ(DAG)になる。マージコミットは親を2つ持つ。