$ git checkout -- hello.txt
$ git reset HEAD hello2.txt
파일이 스테이지에 올라가기 전으로 되돌아온다. (unstaged)
$ git reset HEAD^
수정된 파일을 스테이징하고 커밋까지 했을 때 가장 마지막에 한 커밋을 취소한다.
(unstaged after reset) 커밋이 취소되고 커밋 전에 했던 스테이징도 취소된다. (스테이지에서도 내려간다)
$ git reset 커밋 해시
reset A를 입력할 경우 A를 리셋하는 것이 아니라 최근 커밋을 A로 리셋한다. 즉 A이후 커밋을 삭제하고 A커밋으로 이동한다.
$ git revert 커밋 해시
reset A를 입력할 경우 A에 취소하려고 하는 버전의 커밋 해시를 지정한다.
A가 사라지지 않고 A에서 변경했던 이력을 취소한 새 커밋이 생긴다.