GIT reset해서 사라진 commit 복구하기
아침부터 심장이 쫄깃했다. 커밋을 날려먹었다.
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 함부로 하지말자
그래도 중요한 것 하나 배웠습니다...
Author And Source
이 문제에 관하여(GIT reset해서 사라진 commit 복구하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@mogamogua/GIT-reset해서-사라진-commit-복구하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)