취미가 좋다
git HEAD 간단 설명 본문
HEAD
- 현재 작업중인 커밋을 가리킨다.
- 커밋을 직접 가리킬 수도 있지만 일반적으로 커밋을 가리키는 브랜치를 가리킨다.
HEAD → main → c1
- HEAD 는 * 표시로 표현된다.
- 현재 HEAD 는 main 브랜치를 가리킨다.
- 현재 main 브랜치는 c1 커밋을 가리킨다.
git checkout c1
or
git switch c1
HEAD → c1
main → c1
- HEAD 가 브랜치가 아니라 커밋을 직접 가리키도록 분리됐다.
HEAD 이동
- HEAD 를 옮기기 위해서는 캐럿(^) 과 틸드(~) 를 사용한다.
- 이를 상대 참조 라고 한다.
- 커밋의 해시를 직접 작성하기엔 어렵기 때문에 많이 사용한다.
- switch 나 checkout 명령어를 사용하면 된다. (둘의 차이는 나중에 살펴보자.)
- 현재 HEAD 는 c3 커밋의 main 브랜치를 가리킨다.
- c0 커밋을 가리키도록 수정해보자.
git switch HEAD^^^
git switch main^^^
git switch HEAD~3
git switch main~3
브랜치 옮기기
- main 브랜치가 c1 을 가리키도록 만들어보자.
- branch -f 명령어를 사용한다. (강제로 옮긴다.)
- 상대 참조를 사용한다.
- (HEAD 가 가리키는 현재 브랜치가 아닌 브랜치만 강제 이동이 가능한 것 같다.)
git branch -f main HEAD^^^
git branch -f main main^^^
git branch -f main bugFix^^^
git branch -f main HEAD~3
git branch -f main main~3
git branch -f main bugFix~3
- switch 나 checkout 은 브랜치의 변화 없이 HEAD 만 변경하는 작업이다.
- HEAD 가 특정 커밋을 가리키게 하거나 특정 브랜치를 가리키도록 한다.
- 브랜치를 이동하고 싶으면 branch -f 명령어를 사용해야 한다.
'개발 기타 > git' 카테고리의 다른 글
git cherry-pick(체리픽) 간단 설명 (0) | 2023.01.29 |
---|---|
git 되돌리기(reset, revert) 간단 설명 (1) | 2023.01.29 |
git rebase 간단 설명 (0) | 2023.01.24 |
git merge 간단 설명 (0) | 2023.01.24 |
깃 (git) 쉽고 간단한 설명 (1) | 2023.01.24 |
Comments