Git reset

  • HEAD : 현재 내가 위치해있는 commit을 가리키는 식별자
  • HEAD가 가리키는 commit을 변경함
💡
git reset —hard 커밋아이디
  • HEAD가 첫번째 커밋을 가리킴 → Working Directory의 내용도 첫번째 커밋 시점으로 바뀜 (hard 옵션을 사용했기 때문에)

 

Soft/Mixed/Hard 옵션의 차이

Hard

  • Working Directory가 바뀐다.
  • Staging Area가 바뀐다.

Mixed

  • Working Directory는 건드리지 않는다.
  • Staging Area가 바뀐다.

Soft

  • Working Directory는 건드리지 않는다.
  • Staging Area를 건드리지 않는다.

 

💡
git status
  • git 상태를 더 자세히 확인

 

  • hard는 위험한 옵션 → 바로 직전 commit으로 되돌아가서 Working Directory에서 작업하던 내용이 사라져도 괜찮을 때 사용
  • soft : 내가 작업하면서 만든 Staging Area가 그대로 남아있어 바로 commit 가능
  • mixed : Staging Area가 바뀌므로 최근 작업했던 상태를 commit으로 남기고 싶다면 반드시 git add를 하고 commit 해야한다.
  • 그래서 soft나 mixed 옵션은 언제 사용하는건지?

    commit 01~06까지 작업해둠. reset으로 commit 03으로 돌아간 다음 추가 작업을 하고 commit을 하면 commit 03 다음에 commit 07이 쌓이게 된다. → 제대로 된 커밋들만 깔끔하게 남길 수 있다.

 

Git 히스토리 관리하기

 

💡
git reflog
  • git reflog = git reference log : HEAD가 가리켰던 Commit 기록을 모두 보여주는 명령어

 

💡
git reset —hard HEAD@{number}
  • commit ID 대신 commit에 대한 HEAD@{number}을 입력해도 된다.

+ Recent posts