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
결과)
'Git' 카테고리의 다른 글
[Git] help 명령어 (0) | 2023.08.16 |
---|---|
[Git] fetch와 pull의 차이 (0) | 2023.08.16 |
[Git] Git의 3가지 공간 Working directory / Staging Area / Repository (0) | 2023.08.15 |
[Git] branch merge/rebase 충돌 해결하기 (0) | 2023.08.10 |
[Git] branch를 합치는 두가지 방법 - merge/rebase (TODO:심화과정) (0) | 2023.08.09 |