reset을 더 잘 이해하기 위해서 checkout과 비교를 해보면 좋다. checkout은 HEAD를 직접적으로 가리키도록 바꾼다. reset은 HEAD가 브랜치를 가리키고 있을 때 그 브랜치가 가리키고 있는 버전을 바꾼다. 만약 HEAD가 아무 브랜치를 가리키고 있지 않을 때는 checkout처럼 HEAD를 바꾼다. 그림에서 보듯이 reset과 checkout은 엄연히 차이점이 존재하지만 두 명령어 모두 working directory는 B 인 상태로 같다는 공통점이 있다. reset은 master가 가리키고 있는 버전을 바꿨고 checkout은 HEAD만 바꿨다. reset명령어를 실행하면 C를 더이상 아무도 바라보고 있지 않기 때문에 log로 확인해보면 눈에 보이지 않는다. delete와 같은 효..