한 번이라도 commit이 된 내용이라면 local git repository 안에 commit log들이 남아있다. 따라서 이를 이용해 commit상태로 복원할 방법이 존재한다.
git reflog
를 실행하면 저장소 tree에 일반적으로 보이지 않는 모든 commit들을 살펴볼 수 있다. 여기에서 유실된 commit을 찾은 후 해당 commit의 commitID를 찾아서 상황에 맞게 다음 명령어들을 사용하면 된다.
유실된 커밋을 HEAD로 하는 tree로 돌려놓으려면 아래와 같이 리셋 명령어를 실행하면 된다.
git reset --hard (commitId)
해당 유실된 커밋만 현재 브랜치로 가져오려면 다음과 같이 하면 된다.
git cherry-pick (commitId)