Study Record

[Git&GitHub] Head? 본문

Git

[Git&GitHub] Head?

초코초코초코 2022. 3. 1. 22:24
728x90

Git 의 HEAD 는 현재 브랜치에 가장 최신 커밋을 의미한다!

 

git checkout 으로 앞뒤 이동하기 - HEAD의 위치도 같이 바뀐다.

# ^/~ 의 개수만큼 뒤로가기
git checkout HEAD^     # 한 단계 뒤로
git checkout HEAD~~    # 두 단계 뒤로

# - : 한 단계 앞으로 가기
git checkout -

git checkout 명령어로 현재 브랜치의 이전 커밋 단계로 돌아가거나 앞 단계로 갈 수 있고 이것이 곳 HEAD의 위치를 바꾸는 것이라면 HEAD의 정의가 현재 브랜치의 가장 최신 커밋이라는 의미와는 맞지 않는 것이 아닌가하는 의문이 들 수 있다.

delta-branch 에서 2단계 뒤로 간 모습

위의 그림은 delta-branch 에서 2단계 이전 커밋으로 돌아간 모습이다. 이 때, HEAD의 위치도 2단계 뒤로 돌아갔고 git status 명령어로 현재 모든 브랜치의 모습을 보면 새로운 (HEAD detached at a91b902)라는 브랜치가 새로 생긴 모습을 볼 수 있다!

이렇게 checkout 으로 현재 브랜치 상에서 위치를 옮기면 HEAD 라는 또다른 브랜치가 생기면서 현재 브랜치의 가장 최신 커밋이라는 HEAD의 정의와도 들어맞는다.

 

이런 HEAD의 정의를 이용해서 reset을 할 수 있다.

# 현재 HEAD에서 2단계 전으로 reset!
git reset --hard HEAD~2

 

728x90