4 phút đọc

HEAD

HEAD

HEAD là một con trỏ đặc biệt cho biết bạn đang đứng ở đâu trong cây lịch sử Git — thường là commit mới nhất của branch hiện tại.

HEAD trỏ tới đâu

Thông thường HEAD trỏ tới một branch (ví dụ main), và branch đó trỏ tới commit mới nhất. Vậy nên HEAD gián tiếp chỉ tới commit hiện tại.

git log --oneline -1    # commit mà HEAD đang trỏ tới
git rev-parse HEAD      # in SHA đầy đủ của HEAD

Khi bạn tạo một commit mới, branch hiện tại tiến lên commit đó và HEAD đi theo branch.

Tham chiếu tương đối

HEAD còn dùng để chỉ các commit gần đó:

Ký hiệuÝ nghĩa
HEADCommit hiện tại
HEAD~1Commit cha (lùi 1 bước)
HEAD~2Lùi 2 bước

Detached HEAD

Khi git checkout thẳng tới một SHA thay vì một branch, HEAD trỏ trực tiếp vào commit đó — gọi là detached HEAD. Commit tạo trong trạng thái này dễ bị mất vì không gắn với branch nào.

Cách nhớ nhanh

HEAD = "bạn đang ở đây". Bình thường nó trỏ tới branch hiện tại; commit mới làm branch và HEAD cùng tiến lên một bước.