git에서 이전 커밋으로 돌아가는 대표적인 방법은 reset 명령어를 사용하는 것이다.
그냥 reset을 이용한 경우, reset으로 돌아온 커밋 이후의 변경 사항은 모두 unstaged 영역에 남는다.
여기서 git add , git commit을 해주면 다시 기존 상태로 돌아오게 된다.
아래와 같이 아무 옵션도 주어지지 않았다면 그냥 reset이 수행된다.
$ git reset 어디로 돌아갈지
그냥 reset이 변경 사항을 unstaged 영역에 남겼다면, soft reset은 staged 영역에 남긴다.
즉, soft reset으로 돌아갔었다면, git commit을 했을 때 기존 상태로 돌아오게 된다.
아래와 같이 --soft 옵션을 주어 사용할 수 있다.
$ git reset --soft 어디로 돌아갈지
타노스 리셋이다. 변경 사항을 모두 제거한다. hard reset을 사용했다면, 변경 사항은 로컬에서 모두 사라진다.
아래와 같이 --hard 옵션을 주어 사용할 수 있다.
$ git reset --hard 어디로 돌아갈지
말투가 너무 무서워요