본문 바로가기
문제 해결

git reset

by haekyu31 2022. 11. 28.

  프로젝트를 마무리할 시간이 다가오면서 지금까지 했던 결과물들을 github에 올려 관리 하려고 했다. git ignore를 작성하고 push했는데 실수로 model.ckpt를 그대로 올리는 바람에 용량 부족으로 git push가 안되었다. 다시 model을 git ignore에 추가한 다음에 다시 commit하고 push 하려고 했더니 이번에도 오류가 발생했다. git log를 보니 이전에 commit 이 남아있어서 이전 오류가 계속 반복되는것 같았다. 그래서 commit을 지우려고 git reset hard를 썼는데 여기서 가장 큰 실수를 했다.

 

  내 생각에는 git reset으로 이전 commit을 깔끔하게 다 날리고 처음 상태에서 시작하려고 했는데 git reset hard를 선택했기 때문에 local 에서조차 commit된 내용들이 전부 날아간 것이다. 여기에서 순간 당황했다. model이고 main.py, templates까지 전부 날아간 상태. 남아있는건 git ignore로 설정된 github에 올리지 않아야 할것들.다행히도 팀원들에게 같이 배포할 목적으로 남겨두었던 압축파일을 남겨두었기 때문에 다시 git add 부터 작업할 수 있었다. 이런 일을 겪어보지 않고 실제 일하게 되었을때 git reset으로 날려버린다고 생각하니 정말 좋은 경험을 했다고 생각한다.

 

  git reset hard를 했을 경우에도 복구 하는 법에 대해서 알아봤더니 방법이 존재했다. 

git reflog를 통해서 이전 commit에 대한 내용을 확인할 수 있고, 이전 commit 에 대해 checkout 해준다면 Detached HEAD가 되어 기존 master와 다른 commit 위치로 이동한다. 이후 branch를 하나 생성해서 복원하려는 head와 연결해준다면  reset으로 지웠던 내용을 살릴 수 있다고 한다. 

댓글