git reflog
는 로컬 저장소의 이력을 기록하는데 유용한 도구입니다.
git reflog show HEAD
명령을 사용하여 HEAD를 기준으로 한 로그를 확인할 수 있습니다. 이는 다양한 작업(커밋, 브랜치 변경, 리베이스 등)에 대한 로그를 제공합니다.
git checkout HEAD@{2}
를 사용하면 2단계 전의 HEAD의 상태로 이동할 수 있습니다. 이는 로컬 저장소에서의 이전 동작을 복원하는 데 사용될 수 있습니다.
git checkout HEAD~2
를 사용하면 HEAD의 부모의 부모로 이동할 수 있습니다. 숫자를 조절하여 이전 이력으로 계속 이동할 수 있습니다.
git diff HEAD@{}
를 사용하면 특정 이력과 현재 작업 트리 간의 변경 내용을 비교할 수 있습니다. 이를 통해 특정 시점의 변경 사항을 자세히 살펴볼 수 있습니다.
git reset --hard HEAD@{1}
과 같이 git reset
명령을 사용하여 HEAD를 특정 이력으로 이동하고 해당 이력 이후의 변경 내용을 삭제할 수 있습니다.
git reflog
은 잘못된 작업을 복구하거나 특정 시점의 상태로 되돌아가는 데 유용합니다. 하지만 주의가 필요하며, 리모트 저장소에 푸시한 커밋에 대해서는 사용하기 전에 신중히 고려해야 합니다.