git log

-p: diff 결과 출력
-2: 최근 2개만
--oneline: 각 commit을 한 줄로
--graph: 아스키 그래프 형식으로

git reflog

삭제한 commit도 이력이 남아있다.

git reset

돌아가고 싶은 commit으로 reset할 때,
--hard: reset하기 전까지 했던 staging area, working directory의 작업까지 모두 reset!
(모든 게 잘못됐어! 나 돌아갈래~ 꽃피던 때부터 정갈하게 다시 해보자!)
--mixed(default): staging area은 reset, reset하기 전까지 했던 working directory의 작업은 남겨둠.
(현재 작업물은 지우긴 싫고, 이전 버전으로 돌아가서 add할지 말지 결정해야 할 때)
--soft: reset하기 전까지 했던 staging area, working directory의 작업은 남겨둠.
(reset한 버전과 현재까지의 작업을 합쳐 새로운 버전 만들 때)