선발대

[에러] git reset --hard로 전부 날려버렸을 때 본문

참고사항/에러노트

[에러] 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 refloggit stash apply의 사용법을 물어봤다.

 

 

Comments