git이 관리하는 작업물들을 미리 백업해 놓은 후 reset & revert를 실습해보자.
.git 폴더를 삭제하고 나면 sourcetree에서 이렇게 오류가 발생하게되는데
vsc에서도 git status 명령어를 입력했을 때 또한 마찬가지이다.
이제 다시 .git 폴더를 복구시키고, 실습의 목표를 설정하자
이번 목표는 Add team cheetas의 시점으로 돌아가는 것을 목표로 할 것이다.
먼저 git log를 통해 돌아갈 commit의 해시를 6~7글자 정도 복사 해놓는다.
:q를 통해 log에서 나온 후, 터미널에 (git reset --hard 해시값)을 입력한다.
이후, panthers.yaml은 사라지고, cheetas.yaml이 되돌아왔으며, 수정되었던 내용또한 원상복구 되었음을 확인할 수 있었다.
sourcetree또한 같은 결과를 보여준다. 다시, first commit 시점으로 되돌아가 보도록 하자.
같은 방식으로 진행.
VSC와 sourcetree 모두 First Commit 시점으로 되돌아온 것을 확인할 수 있었다.
자, 그동안의 프로젝트가 모두 날라간 이 기분이 그렇게 좋지는 않기 때문에 백업해놓은 .git 폴더를 다시 가져오겠다.
sourcetree는 commit목록이 모두 복구 되었음을 확인할 수 있었다......그러나?
VSC에서 git log에서의 commit은 확인할 수 있지만git status에서 확인해보면 git은 현재 commit은 복구되었지만 First Commit시점의 파일들로 변경되었다고 착각한 상태이다. 이렇게 착각중인 git의 정신을 차리게 만들려면...??
git reset --hard 명령을 내리면 된다!
이렇게 reset 실습 끝. reset의 핵심은 돌아갈 지점을 선택해 그 시점 이후의 commit은 모두 취소된다.