Git에서 HEAD는 현재 체크아웃된 브랜치나 커밋을 가리키는 포인터이며, HEAD는 현재 작업 중인 참조(reference)를 나타낸다.
주요 개념
브랜치에서의 HEAD : 만약 main 브랜치에서 작업중이라면 일반적인 HEAD는 main을 가리키며, 그 브랜치의 가장 최신 커밋을 참조하고 있다.
Detached HEAD: git checkout을 통해 특정 커밋으로 이동하거나 과거 커밋으로 이동하면 생기는 HEAD의 상태이다. 특정 커밋을 직접 가리키며 이 상태에서 커밋을 해도, 해당 커밋은 기존 브랜치와 연결되지 않기 때문에 다른 브랜치로서 분리되어 커밋된다.
사용법
git checkout 브랜치명
: HEAD가 브랜치를 가리키도록 설정되며 Detached HEAD 상태에서 빠져나간다.git checkout 커밋해쉬값
: 특정 커밋으로 이동하며 Detached HEAD 상태가 된다.git log --oneline
: HEAD가 현재 가리키는 커밋 로그를 쉽게 확인 가능하다.
명령어로서의 HEAD
git checkout 커밋해쉬값
을 입력하면 해당하는 커밋으로 Detached HEAD 상태로 이동하는데, 커밋의 해쉬값을 보려고 매번 git log로 확인하는것도 일이니 HEAD 명령어로서 존재한다.
현재 가르키고 있는 HEAD를 기준으로 커밋을 결정할 수 있다.
사용법
- git checkout HEAD^: ^는 뒤로 한번 이동함을 뜻한다. ^^하면 두번 이동한다. 만약 C1 -> C2 로 커밋이 존재하고 HEAD가 C2였다면, C1으로 Detached HEAD 상태가 되어 이동한다.
- git checkout HEAD
숫자: 만약 8번 뒤로 가고 싶다면 HEAD^^^^^^^^이 되버리기 때문에, ~를 이용하여 원하는 숫자만큼 뒤로 이동 가능하다. HEAD8로서 사용이 가능하다.
'git > gitCommand' 카테고리의 다른 글
git cherry-pick (0) | 2024.10.14 |
---|---|
git reset, git revert (0) | 2024.10.14 |
git merge, git rebase (0) | 2024.10.11 |
git checkout (0) | 2024.10.11 |
git branch (0) | 2024.10.11 |