git/gitCommand

git HEAD

oniri1 2024. 10. 14. 16:41

Git에서 HEAD는 현재 체크아웃된 브랜치나 커밋을 가리키는 포인터이며, HEAD는 현재 작업 중인 참조(reference)를 나타낸다.

주요 개념

  1. 브랜치에서의 HEAD : 만약 main 브랜치에서 작업중이라면 일반적인 HEAD는 main을 가리키며, 그 브랜치의 가장 최신 커밋을 참조하고 있다.

  2. 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를 기준으로 커밋을 결정할 수 있다.

사용법

  1. git checkout HEAD^: ^는 뒤로 한번 이동함을 뜻한다. ^^하면 두번 이동한다. 만약 C1 -> C2 로 커밋이 존재하고 HEAD가 C2였다면, C1으로 Detached HEAD 상태가 되어 이동한다.
  2. 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