技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

git の commit, branch, HEAD

この3つの関係は、まず commit オブジェクトがあって、それを指す branch があって、さらにその branch を指す HEAD があるというものになっている。つまり、こんな感じ。

commit オブジェクト ← branch ← HEAD

HEAD は、現在地、すなわち現在の working directory の内容を指している。

 

git は、commit オブジェクトが中心にあって、その他の概念は commit オブジェクトを指すポインタのようなものと考えると、理解しやすいだろうか。

 

この辺の話は、以下のページがとても分かりやすかった。

https://www.r-staffing.co.jp/engineer/entry/20201225_1

 

ちなみに、tag も commit オブジェクトに付けるものなので、やはり git は commit を中心として考えるのが良い。