Git reset과 revert는 협업 중 이전 커밋으로 되돌아가고 싶을 때 사용할 수 있는 명령어이다..!
그 중에서도 reset 명령어를 사용해서 이전 커밋으로 돌아가는 법에 대해 알아보자 😀✨
git log --oneline
git log를 보는 방법도 여러가지가 있던데 필자는 commit 이력 중 커밋 ID 와 타이틀 메시지만 한줄 형태로 조회 가능한 git log --oneline
을 사용했다.
그러면 이렇게 커밋 ID와 타이틀 메시지만 한 줄로 뜬다 위에서부터 최근한 커밋이다.
빨간색 : 없애고 싶은 커밋
파란색 : 돌아가고 싶은 상태
빨간색을 없애고 파란색으로 돌아가고 싶다 😀
git reset --hard [돌아가고싶은 커밋 해쉬 값]
git reset에는 3가지 옵션이 있다.
1. soft : 커밋만 취소
2. mixed : 커밋 취소 + git add(스테이징)도 취소 (mixed가 default이다)
3. hard : 커밋 취소 + git add(스테이징) 취소 + 변경사항 아예 없앰
(hard는 위의 옵션들과 달리 파일 내용을 완전히 삭제 시키기 때문에 주의해서 사용해야한다!)
필자는 아예 변경사항까지 없애고 싶어서 --hard
를 사용했다. 돌아가고 싶은 파란색 상태에 해당하는 해쉬값을 넣어줬다.
여기서 "HEAD is now at f1..."라는 메시지가 보이는데 여기서 HEAD는 현재 브랜치를 가리키는 포인터이다.
다시 git log --online
으로 로그를 확인한다.
제거하고 싶었던 빨간색 상태는 삭제되고 HEAD가 파란색 상태를 가리키고 있는 걸 확인할 수 있다.
그럼 마지막으로 이 상태를 원격 저장소에 강제로 push해주면 끝이다!
git push -f origin master