현재 커밋한 내역을 과거시점으로 되돌리고 싶을 때 사용하는 명령어이다.
주로 로컬에 한 커밋이 잘못되었을 경우 고쳐야할 때 많이 쓰인다.
git reset --soft HEAD^
명령은 현재 HEAD가 가리키는 커밋 이전의 상태로 되돌리며, 변경사항을 유지하며 staged 상태로 만든다는 것이다.
쉽게 말하면, 방금 한 커밋을 하기 직전 상태로 되돌린다는 것이다.
git reset은 세 가지 옵셔닝 있는데, 다음과 같다
- soft : HEAD가 가리키는 브랜치를 옮긴다. (변경사항은 유지, staged 상태로 만듦)
- mixed(default) : Index를 HEAD가 가리키는 상태로 만든다. (변경사항은 유지, unstaged 상태로 만듦)
- hard : 워킹 디렉토리를 Index의 상태로 만든다.(변경사항 없어짐)