HEAD와 git reset

김명재·2023년 2월 28일
0

HEAD란?

어떤 커밋 하나를 가리키는데
보통 가장 최근에 한 커밋을 가리킨다

HEAD가 필요한 이유?

헤드가 가리키고 있는 커밋에 맞춰서 워킹디렉토리 내부가 구성된다.

git reset

head가 지정한 아이디를 가진 커밋을 가리키게 한다.
즉 워킹디렉토리 내부도 과거 커밋의 모습으로 돌아가게 한다.

ex)
특정 시점 이후로 작업했던 내용들이 전부 마음에 들지 않을때 자신이 마음에 들었던 과거의 특정 커밋으로 돌아갈 수 있다.

git reset --옵션 abcd

--hard

HEAD가 abcd를 가리킴
staging area가 abcd커밋처럼 바뀜
working directory가 abcd커밋처럼 바뀜
git reset --hard는 staging area뿐만 아니라 working directory까지 다 변화시키기 때문에 git add만 하면 다시 복구할 수 있는 다른 옵션과 다르게 주의해서 사용해야 한다.
(but 그전에 git push를 해놓았다면 no상관ㅋ)

--mixed

HEAD가 abcd를 가리킴
staging area가 abcd커밋처럼 바뀜
working directory는 바뀌지 않음

--soft

HEAD가 abcd를 가리킴
staging area는 바뀌지 않음
working directory는 바뀌지 않음

참고

git reset --옵션 HEAD^:바로 이전의 최신 커밋을 가리킴
git reset --옵션 HEAD~2: 최신커밋에서 2단계 아래 커밋을 가리킴(5단계에서 3단계 커밋을 가리킴)

profile
steadyness is all time way

0개의 댓글