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 현재브랜치명
'Git' 카테고리의 다른 글
Git 자주쓰이는 명령어 모음 (4) | 2019.03.14 |
---|---|
GIt 명령어 배우기 -3 cherry-pick,인터렉티브 리베이스 (4) | 2019.02.11 |
GIt README 작성하기 (4) | 2019.02.01 |
GIt 명령어 배우기 -1 (commit, branch, checkout, merge, rebase) (270) | 2019.01.31 |
gitignore 적용하기 (255) | 2019.01.29 |
댓글