본문 바로가기

git

[Git] git reset, 커밋/푸시 되돌리기

워크플로 개념 잡기

Git - Reset 명확히 알고 가기

  • HEAD : 현재 바라보고 있는 브랜치 포인터이며, 브랜치는 브랜치에 담긴 커밋 중 가장 마지막 커밋을 가리킨다. 커밋된 내용이 담김. - git commit
  • Index : git add한 내용이 담김. - git add
  • Working Directory : 그냥 내가 작업하고 있는 로컬이 작업 공간 (git add도 안 해도 여기에 저장됨) - edit file
git status로 Index에도 있는 파일(add한 파일)과 워킹 디렉터리에만 있는 파일을 확인할 수 있다.

옵션에 따라 다른 reset 범위 

아무 옵션을 주지 않았을 경우 default는 mixed
  1. HEAD 이동
    • checkout 명령처럼 HEAD가 가리키는 브랜치를 바꾸는 것이 아님
    • 현재 브랜치가 가리키는 커밋을 바꿈
    • HEAD가 9e5e6a4 → 커밋을 가리키게 된다.
    • --soft 옵션을 주고 실행하면 reset 명령은 여기까지
  2. Index 업데이트
    • Index를 현재 HEAD가 가리키는 스냅샷으로 업데이트한다.
    • --mixed 옵션을 주고 실행하면 reset 명령은 여기까지
    • add만 한 파일을 add 취소하고 싶으면 git reset (--mixed) head → HEAD로 주면 마지막 커밋 상태로 돌아간다.
  3. 워킹 디렉토리 업데이트
    • 워킹 디렉토리까지 업데이트한다.
    • --hard 옵션을 주고 실행하면 reset 명령은 여기까지
    • 변경을 취소하고 싶으면 git reset --hard head → HEAD로 주면 마지막 커밋 상태로 돌아간다.
반응형