필자는 이전에 BOJ(Baekjoon Online Judge) 에서 풀었던 알고리즘 문제들을 하나의 폴더에 정리해서 모아놓았습니다. 그리고 이 파일들을 Github에 올리고자 git init을 하고 이것 저것 처음 만져보다 reset을 해버려 오랬동안 모았던 파일들을 전부 날려먹었던 경험이 있습니다..
그때 지금 이 명령어를 알았더라면 복구 할 수 있었을텐데 왜 그땐 그렇게 쿨하게 포기했는지.. 이번엔 실수로 한 reset을 이전으로 되돌리는 명령어에 대해 알아보려 합니다.
실수? 로 HEAD를 15개 이전 커밋으로 reset 해버렸다고 가정 해봅시다.
아무것도 남지않은 텅 빈 로그..
이런 절망 적인 상황에서 shell에 명령어 한줄을 입력해 봅시다.
git reflog
해당 명령을 입력하면 여러가지 로그가 뜨는데, 해당 로그들은 자신이해왔던 여러가지 작업들의 기록입니다.
여기서 잘못 리셋했던 커밋 해시 이전의 해시를 복사해서 다시 리셋 해준다면
git reset --hard 141c11a
리셋하기 이전의 상태로 완전히 돌아와있다는 걸 확인할 수 있습니다.
이렇게 실수로 리셋한 상태를 되돌리는 것이 가능하지만,
가능하면 리셋을 남발하여 이러한 상태가 발생되지 않도록 조심하는것이 더욱 중요하다는걸 다시한번 느낍니다.