일단 원본 링크이다. https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Reset-%EB%AA%85%ED%99%95%ED%9E%88-%EC%95%8C%EA%B3%A0-%EA%B0%80%EA%B8%B0
굉장히 설명이 잘되어 있다. 여러번 가서 볼 필요가 있다. 가장 중요한 개념은 checkout은 header가 가리키는 branch를 변경한다. reset은 branch가 가리키는 커밋을 변경한다 이다.