참고사항/에러노트
[에러] git reset --hard로 전부 날려버렸을 때
신선한 스타트
2024. 5. 21. 18:02
에러상태
git reset --hard로 커밋 안 한 작업 내용이 전부 날아감
어느 정도 끝난 작업 내용이 많아서 나눠서 커밋하고 있었다.
그러다가 한 커밋에 들어가야 하는 파일이 빠져서 무심코 git reset --hard HEAD~1 을 입력하고 엔터를 눌렀는데
순간 어?! 하고 정신이 돌아왔다. 로컬 파일 확인해 보니까 커밋 안 한 내용들이 전부 사라져 있었음. 멘붕.. 내 주말..
다행히 찾아보니까 커밋을 안했어도 복구할 수 있는 방법이 있다고 한다.
크게 2가지 방법이 있는 듯 하다.
(1) git reflog 사용
(2) git stash list 복구
여기에서 난 2번째 방법을 사용했다. 다행히 바로 직전에 다른 분의 로컬 브랜치에서 테스트하고 내 로컬 브랜치로 머지하려고 했어서 git checkout으로 브랜치 이동하기 전에 내 브랜치 작업 내용을 git stash로 임시 저장했었다. 확인해 보니 거의 유지되어 있었음.
해결방안
## stash 사용
# 1. stash 목록 확인
git stash list
# 2. stash 적용하기
# 최신 stash 적용
git stash apply
# 특정 stash 적용
git stash apply stash@{0}
## reflog 사용
git reflog
git reset --hard HEAD@{n}
참고한 자료들
이번에는 ChatGPT에 git reflog와 git stash apply의 사용법을 물어봤다.