revert : 지금까지 만든 버전은 유지하고 되돌릴 버전을 그 다음 새 버전으로 생성
ex) A-B-C-D-C'
reset : 버전을 완전히 되돌리기
ex) A-B-C-D => A-B-C
Revert 는 지금까지 만든 버전은 그대로 두고 되돌리고 싶은 버전을 마지막 단계에 새 버전으로 생성하는 처리과정이다. 이 과정은 사용자에게 혼동을 줄 수 있으니 꼭 필요한 경우에만 사용하도록 하자.
Reset은 우리가 알고 있는 것처럼 시간을 되돌려서 원래 없었던 작업처럼 처리하는 것. reset에는 soft, mixed, hard reset 세 가지 방법이 있는데 그 내용은 다음과 같다.
soft reset, mixed reset 은 기록만 지우므로 소스코드 파일에서는 마지막 커밋이 그대로 남아있다. hard reset을 해야 완전히 리셋이 된다.
이 외에 Stash(스테시)가 있는데 임시 보관함으로 이동하는 것과 같은 처리이다. 필요는 없는데 버리기 아까운 커밋을 임시보관할 수 있다. 스테시의 제목은 순서를 나타내는 숫자와 구체적인 내용으로 저장하자. 반대로 스테시 처리한 작업을 다시 적용할 수도 있다.