본문 바로가기
Git

GIt 명령어 배우기 -2 커밋트리[Commit tree]에서 이동하는 방법( branch -f , reset, revert , ^, ~)

by 봄석 2019. 2. 7.


Git 커밋트리(Commit tree)에서 이동하는 방법


HEAD란 ?

HEAD는 현재 체크아웃 된 커밋을 가리킵니다. 즉 현재 작업중인 커밋입니다.

HEAD는 항상 작업트리의 가장 최근 커밋을 가리킵니다.

작업트리의 변화를 주는 git 명령어들은 대부분 HEAD를 변경하는것으로 시작합니다.


일반적으로 HEAD는 브랜치의 이름을 가리키고 있습니다 .

커밋을 하게되면 브랜치의 상태가 바뀌고 이 변경은 HEAD를 통해서 확인이 가능합니다



HEAD분리하기

HEAD를 분리한다는 것은 HEAD를 브랜치 대신 커밋에 붙히는 것을 의미합니다.


HEAD -> master ->C1 이였다면


git checkout C1


HEAD  ->C1 명령후에는 이처럼됩니다.


(master는 브랜치고 C1은 커밋입니다 )





상대참조

상대참조로 기억할만한 지점(브랜치 라던가 HEAD라던가)에서 출발해서 다른 지점에 도달해 작업할 수 있습니다.

  • 한번에 한 커밋 위로 움직이는 :  ^ (캐럿연산자)
  •  한번에 여러 커밋 위로 올라가는  : ~<num>


ex 브랜치 옮기기

상대창조를 사용하는 가장 일반적인 방법으로 브랜치를 옮기는법입니다 .


git branch -f master HEAD~3 ( 마스터 브랜치를 헤드로부터 위로 3단계 올라감)

git branch -f bugFix 






작업 되돌리기(reset , revert)



  • 브랜치로 하여금 예전의 커밋을 가리키도록 이동시키는 변경방식  : reset 
      • 주로 로컬 브랜치에서 사용
      • 변경내용을 되돌리며 , 애초에 커밋하지 않은것처럼 예전커밋으로 브랜치를 옮김
      •  git reset HEAD~1 or git reset HEAD^
  • 변경분을 되돌리고, 되돌린 내용을 다른사람들과 공유 : revert
      •  되돌린 내용을 기록하며, 새로운 커밋 생성
      •  git revert HEAD or git revert 현재브랜치명



댓글