소개
Git 시간 여행자 여러분, 환영합니다! 오늘은 저장소의 히스토리를 전례 없는 수준으로 제어할 수 있게 해주는 두 가지 강력한 기능인 git reset과 git reflog를 살펴보겠습니다. 이 도구들은 Git 타임머신의 고급 제어 장치와 같아서, 프로젝트의 서로 다른 상태 사이를 이동하거나 심지어 "잃어버린" 작업까지 복구할 수 있게 해줍니다.
git reset 명령어는 변경 사항 취소, 파일 스테이징 해제, 커밋 히스토리 재작성 등 다양한 용도로 사용되는 다재다능한 도구입니다. 하지만 강력한 힘에는 큰 책임이 따르는 법이며, 초보자에게 git reset은 다소 위협적일 수 있습니다. 바로 이때 git reflog가 등장합니다. 이는 안전망과 같아서 브랜치 끝 (branch tips) 과 같은 저장소 참조 (refs) 에 발생한 모든 변경 사항을 기록하므로, 아무리 극단적인 리셋을 했더라도 다시 복구할 수 있도록 도와줍니다.
이 실습에서는 다음 내용을 다룹니다:
- Soft Reset: 작업 디렉토리나 스테이징 영역을 변경하지 않고 HEAD 위치만 이동하기
- Mixed Reset: 작업 디렉토리의 수정 사항은 유지하면서 스테이징만 해제하기
- Hard Reset: 모든 변경 사항을 완전히 삭제하기
- Reflog 를 사용하여 "파괴적인" 작업으로부터 복구하기
- 시간 기반 리셋: 특정 시점의 상태로 저장소 되돌리기
이 실습을 마칠 때쯤이면 이러한 강력한 Git 기능들을 안전하고 효과적으로 사용하는 방법을 확실히 이해하게 될 것입니다. 이제 필요할 때 언제든 이전 상태로 돌아갈 수 있다는 자신감을 가지고 저장소 히스토리를 자유롭게 다뤄보세요.
그럼 이제 git reset과 reflog를 마스터하러 떠나볼까요!



