본문 바로가기
Git

[Git] Git HEAD란 무엇인가?

by 설총이 2023. 8. 15.
Git의 HEAD란 무엇인가?

 

Git을 다루다보면 git log를 찍었을 때 HEAD가 특정 커밋에 찍혀있는 것을 볼 수 있다.
모든 브랜치에는 HEAD 값이 존재하는데 HEAD란 해당 브랜치의 마지막 커밋을 뜻한다. 

 

따라서 아래와 같이 HEAD가 특정 커밋에 찍혀 있을 경우 해당 브랜치의 마지막 커밋이 해당 부분이라는 것을 알 수 있게 된다. 즉, HEAD는 특정 브랜치의 마지막 커밋에 대한 포인터이다.

 

 

checkout으로 앞뒤 이동해보기

git checkout HEAD^
  • ^ 또는 ~: 갯수만큼 이전으로 이동
    • git checkout HEAD^^^ ( 세번 이전으로 이동 )
    • git checkout HEAD~5 ( 다섯번 이전으로 이동 )
  • git checkout - : (이동을) 한 단계 되돌리기

 

⭐️ 커밋 해시를 사용해서도 이전/이후 이동 가능

  • git checkout (커밋해시)

 

💡 이전으로 checkout된 상태에서 소스트리로 HEAD 상태 보기

익명의 브랜치에 위치함을 알 수 있음

  • checkout으로 이전으로 돌아간 뒤
    • 기존 브랜치로 돌아오기: git switch (브랜치명)
    • 새 브랜치 만들어보기 : git branch -c gamma-branch
    • 새 커밋 만들어보기: git commit -am 'gamma 1st commit'

 

⭐ HEAD 사용하여 reset하기

- reset하려는 브랜치에서

git reset HEAD(원하는 단계) (옵션)

수행) switch delta-branch , git reset --hard HEAD^2

결과)