GIT reset해서 사라진 commit 복구하기

지구·2022년 2월 11일
0

아침부터 심장이 쫄깃했다. 커밋을 날려먹었다.

button+ul,li로 커스텀했던 셀렉트 드랍다운들을 select태그로 고치는 과정중에 했던 커밋들이었는데, 결과적으로 플젝에는 필요가 없어진 코드였지만하루종일 삽질을 했던터라. . . 삽질하면서 만들어놓은 코드가 날라갔다니. 멍했다.
select태그는 처음 써보고 커스텀하는 것도 까다로워서 벨로그에 정리해놓고싶기도 했는데 코드가 사라지다니!!

문제의 원인

  • 완성한 코드를 commit만 하고 push를 안했다.
  • 이전 코드 확인하겠다고 4개쯤 전 커밋으로 chekout해서 Head가 변경된 상태였다.
  • 아무 생각없이 git kraken에서 해당 브랜치에 checkout하려고 더블클릭했는데, 'reset local to here'할거냐고 물어봤다. 항상 브랜치 최신화 할 때 이걸 눌렀기 때문에.. 아무생각없이 눌러버렸다.

읭? checkout했던 이전 커밋 위로 쌓여있던 커밋내역들이 뿅!하고 사라졌다....

너무 쉽게 사라져버린 커밋내역들.. 뭔가 방법이 있지않을까?
하 어쩐지 어제 이전 커밋으로 checkout해놓고 노트북을 끌 때 안좋은 일이 생길 것만 같은 예감이 들더라...

'reset commit 복구하기' 대충 이렇게 구글링을 해보니 . . .
https://88240.tistory.com/284
생명의 은인이신 이분의 블로그에서 친절하게 알려주셨다.
나랑 상황이 매우 비슷했다 ㅋㅋ...

1. git reflog로 내역확인하기

git reflog

터미널에서 git reflog를 치면 이전 내 활동내역(?)을 모두 확인할 수 있다. chekout, commit들 모두.

사라진 커밋내역과 git reflog해서 나타난 최근 커밋내역
HEAD{8}: commit: style: option 태그 제외하고 커스텀완료 여기가 이 브랜치의 최신 커밋이었기때문에 여기로 다시 reset을 진행하면된다.

2. git reset 으로 돌아가기

git reset --hard 'HEAD@{8}'

참고로, 블로그에선 따옴표를 안써주었지만 Windows운영체제에서는 따옴표를 같이 써주어야한다. 안써주면 unknown switch `e'이런 에러가 뜬다.

  • 따옴표 안썼을 때

  • 따옴표 붙여주기

3. 복구완료

.◟(ˊᗨˋ)◞.

head is now 어쩌고 하면서 복구가 되었다..짠!

오늘의 교훈 : reset 함부로 하지말자

그래도 중요한 것 하나 배웠습니다...

profile
디자인과 기획이 재미있는 프론트엔드 개발자입니다. 블로그 이사 준비중. . .

0개의 댓글