Git Head // Git(6)

2022. 2. 25. 20:12
  • 얄코님의 git강의내용을 정리
  • Git Head에 관함

 

1.HEAD란?

  • 특정 브랜치로 이동시 그 브랜치의 가장 최신 커밋으로 이동하며, 그때의 사용자의 위치를 HEAD라고 한다.
  • 이게 sourcetree같은데서 보면, branch들이 일렬로 나열되어 있는 경우가 있는데, 각 branch의 최신 커밋이 head가 되는 것임

  • 다음과 같은 경우, main브랜치로 이동했을 때 내 위치는 'main 3rd commit'이고, 그떄의 head도 'main 3rd commit'임
  • 만약 delta-branch로 이동시, 'delta 3rd commit'이 내 위치이고, 그때의 head도 'delta 3rd commit'임

 

  • 암튼 HEAD 라는 건, 일종의 현위치를 나타내는 것이고 브랜치를 이동했을 경우 HEAD는 그 브랜치의 최신 커밋이 된다
  • 명령어를 사용해 HEAD를 옮길 수 있음 >> 이전의 커밋들로 내위치를 옮길 수 있음.
  • 즉, 커밋을 취소하거나(reset) 되돌리지 않고(revert) 여러 커밋을 돌아다니며 내용을 확인할 수 있다.

 

2. Head의 이동

  • 명령어 끝에 ~를 붙여서 head를 이동시킬 수 있음(~대신 ^를 사용할 수도 있다고 하는데, 내컴에선 안먹힘)
  • 커밋 해시를 사용해서 이동할 수도 있음
  • 'git checkout -'명령어로 그 전 커밋으로 되돌아갈 수 있음
    • 한칸 되돌아가는 것이 아니라, 딱 그 전 위치로 돌아가는 것임
    • 예를 들어, commit3에서 commit1로 갔다가 git checkout-을 하면 commit2가 아니라 commit3으로 되돌아감
#~사용
git checkout HEAD~
git checkout HEAD~~~
git checkout HEAD

#커밋해시 사용
git checkout (커밋 해시)

#이동을 전상태로 돌아가기
git checkout -

 

  • 참고로 reset할때 head명령어를 쓸수도 있음
#형식
git reset HEAD(원하는 단계) (옵션)

#ex : 두단계 뒤로 --hard reset하겠다!
git reset HEAD^^ --hard

 

3. branch생성

 

  • 위의 명령어(checkout)를 사용해서 이전의 커밋들 중 하나로 돌아가있는 상태는 사실, 돌아간 커밋에서 익명의 브랜치에 위치하고 있는 것임
  • 예)beta-branch의 첫번째 커밋으로 돌아간상태

 

  • 여기서 branch를 생성하고 내용을 수정해서 커밋하면, 돌아간 커밋지점에서 새로운 브랜치가 뻗어나오는 거임
#브랜치 생성&이동(-c)
git switch -c gamma-branch

 

'개발도구 > git' 카테고리의 다른 글

Git submodules // Git(9)  (0) 2022.02.25
Git tag // Git(7)  (0) 2022.02.25
노션 이동 완료Git : GitHub // Git(5)  (0) 2022.02.25
Git : Branch // Git(4)  (0) 2022.02.25
Git commit // Git(3) / 노션이동완료  (0) 2022.02.25

BELATED ARTICLES

more