취미가 좋다

git HEAD 간단 설명 본문

개발 기타/git

git HEAD 간단 설명

benlee73 2023. 1. 24. 11:17

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 명령어를 사용해야 한다.

 

 

 

https://learngitbranching.js.org/?locale=ko 

 

Learn Git Branching

An interactive Git visualization tool to educate and challenge!

learngitbranching.js.org

'개발 기타 > 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