HEAD : 어떤 커밋 하나를 가리킴
branch : 하나의 코드 관리 흐름
사실 branch도 HEAD처럼 어떤 커밋 하나를 가리키는 존재이다. (이것을 포인터라고 부른다.)
git에서 커밋은 이전 커밋에 대한 정보를 가지고 있다.
그래서 master(혹은 main) 포인터가 가장 최신의 커밋만 가리키고 있다고 해도 그 이전 커밋으로 하나씩 거슬러 올라갈 수 있기 때문에 어떻게 프로젝트가 변해왔는지 추적할 수 있다.
그래서 branch가 어떤 코드의 관리 흐름이라는 개념이 성립되는 것이다.
HEAD 역시 어떤 커밋을 가리키는 존재로 포인터이다. HEAD가 가리키는 커밋의 내용대로 워킹 디렉토리의 내용물이 바뀐다. 하지만 정확하게 말하자면 HEAD는 커밋을 직접적으로 가리키지 않는다. HEAD는 branch를 가리킬 뿐이다.
프리미엄이라는 브랜치를 새로 만들고 git checkout premium으로 HEAD를 premium으로 맞춰줬다. 이 상태에서 다른 커밋을 만들면
HEAD가 가리키던 프리미엄 브랜치가 새로운 커밋을 가리킨다. 이 상태에서 마스터 브랜치로 체크아웃하면 HEAD는 다시 master로 이동한다.
그럼 HEAD 입장에선 다섯번째 커밋을 가리키는것이고 다섯번째 커밋의 내용대로 워킹 디렉토리 내용도 변하게 된다.
이렇게 쭉 커밋을 하다가 프리미엄 브랜치와 마스터 브랜치를 머지하게 되면 새로운 커밋을 만들어주는데 이 때 커밋을 머지 커밋이라고 한다.
'코린이 개념잡기 > GIT' 카테고리의 다른 글
Git Flow 브랜치 전략 (0) | 2024.12.13 |
---|---|
Git branch merge 방법 (0) | 2024.12.13 |
branch (0) | 2024.12.09 |
커밋 다루기 (0) | 2024.12.08 |
커밋 메시지 작성하기 (1) | 2024.12.08 |