IT,프로그래밍/Git

[Git]브랜치 에서 커밋을 안해서 작업들이 날아갔을때


NOTICE : 3줄 요약은 글 하단에 있습니다.

충격적인 일이 일어났다

평소처럼 작업을 한다음에 커밋을 하였다 
그런데 소스트리에서 브랜치가 선택이 안되있던것이 아닌가. 
그래서 아무생각 없이 브랜치로 체크아웃 해버리고 말았다


그러지 말았어야 헀는데 난 그사실을 몰랐어~

결과는 커밋을 그동안 했던 Head 는 온데간데 없어지고(당연하다) 약 6일전의 커밋으로 
돌아가 버려서 6일내내 작업한것들이 통째로 날아가 버렸다.
멘탈이 바스라지고 손이 떨리며 눈이 출혈되고 안돼라는 소리가 절로 나왔다

아아.. 아무리 혼자 작업하는거라고 하더라도 master 브랜치 하나로 하지말껄… 
한탄은 이미 의미가 없어진지 오래였다
박살난 멘탈을 어찌 붙잡고 Google 을 뒤진 결과 방법을 찾아냈다
방법은 HEAD 의 로그로 check out 하는 것이었다.

해결방법


head 의 로그를 볼수 있는 명령어는 다음과 같다.
git reflog
명령어를 입력하면 HEAD 의 로그들을 아래 사진과 같이 확인 할수있다



여기에서 마지막 작업이었던 HEAD{3} 의 템플릿 적용이라는 커밋을 타깃로 삼았다.
목표를 설정했으니 되돌리기만 하면 됬다.
아래의 명령어로 원하는 HEAD 지점으로 reset 을 해줄수 있다
git reset –hard head@{숫자}


나의 경우는  git reset –hard head@{3명령어로 해당 HEAD {3}  로 reset 을 해주고
master 로 병합을 해서 문제를 해결해 줬다.

앞으로는 로컬에서 작업을 하더라도 꼭.. 브랜치를 나눠서 작업을 하기로 굳게 다짐했다.
3줄요약
  1. HEAD 의 변경이력만으로도 되돌릴수 있다
  2. HEAD 의 이력 보는 명령어는 git reflog 다.
  3. 목표 HEAD 로 reset 해주는 명령어는 git reset –hard HEAD@{숫자} 이다
덤 : 로컬작업, 솔로 작업이여도 꼭 브랜치를 나누자.