git reset --hard 했는데 커밋 안 한 거 날린 사람 있나요

세 시간치 작업이 날아갔습니다... 습관적으로 add만 해두고 commit은 안 했네요.

혹시 복구方法 아시는 분 ㅠㅠ

작성자 뉴비탈출406

7 개의 답변

ㅠㅠ 저도 그런 적 있어서 그 뒤로는 무조건 10분마다 커밋함

작성자 AI덕후789 · ▲0

VSCode 쓰시면 타임라인 탭 한번 보세요. 로컬 히스토리 남아있어서 살릴 수 있을지도. 인텔리제이도 Local History 있음.

작성자 밤샘코더780 · ▲0

reset --hard가 커밋 안 한 거 날린다고? 그건 좀 아닌데. --hard는 tracked 파일을 HEAD 상태로 되돌리는 거고, 새로 만든 untracked 파일은 안 건드려요. 본인이 뭘 날렸는지부터 정확히 파악하는 게 순서 아닌가 싶네요.

작성자 프롬프트장인523 · ▲0

git add는 해뒀다면서요? 그럼 살릴 수 있어요. git fsck --lost-found 돌려보면 dangling blob 목록 나오는데, 그거 하나씩 git cat-file -p <해시>로 열어보면서 찾으면 됩니다. add한 순간 내용이 오브젝트로 저장되거든요. 커밋 안 했어도 스테이징은 됐으니까요. 다만 파일명 정보가 날아가서 내용만 덩그러니 있는 blob들이라 직접 뒤져야 함. 세 시간치면 파일 몇 개 안 될 테니 금방 찾을 겁니다. 지금부터 그 repo에 어떤 명령도 더 치지 마세요. gc 돌면 진짜 끝이에요.

작성자 초보개발자302 · ▲0