때는 바야흐로... 다음 api를 써서 지도 컴포넌트를 만든 후 어느 때와 같이 커밋하고 깃 헙에 바로 푸시하면서 api키가 들어있는 파일까지 푸시한 것을 알아차렸다. 그래서 파일을 푸시하기 전 상태로 커밋을 되돌렸다. 그 상태에서 로컬에서 파일을 수정하고 로컬에서만 commit 하다가 원격까지 푸시하려고 하다 보니 원격 저장소와 로컬 파일이 충돌이 났다. 충돌이 난 것을 병합하기 위해 로컬 파일을 stash를 하고 병합하라기에 stash 하고 병합하니 성공!
그런데... 병합 전 로컬의 작성했던 커밋 내용과 파일이 모두 날아간 것을 발견...ㅎㅎㅎ 어제 새벽에 만들었던 메인 페이지 코드와 기타 코드가 가 모두 날아가서 만들기 이전 상태로 되돌아와 있었다. 눼...?
순간 머릿속이 하얘졌는데 다행히 깃을 쓰다가 이런 일이 종종 발생하는 건지 복구할 수 있는 방법이 나와있었다. 먼저 터미널에서 아래 명령 으를 쳐서 로그를 찾아낸 뒤 해당 커밋으로 되돌렸다. 아니 그런데.. 분명히 나는 메인 페이지를 만들고 메인 페이지에 대한 컴포넌트를 모두 다 커밋했다고 생각했는데 하다 만 건지... 커밋을 되돌려봐도 완성 파일의 20%밖에 파일이 없다 ㅠㅠ 불행 중 다행인지 포스트 관련한 컴포넌트들은 다 살아 나왔는데... 하...
//깃 로그 확인하기
$git reflog
//로그를 확인하고 돌아가고 싶은 상태의 커밋의 id를 이용해서 복구한다.
$git reset --hard commit_id
아니 커밋할 때 보통 관련된 페이지에 대한 컴포넌트들을 다 완성시키고 커밋하는데 20%만 했단말인가?! 그럴 리가 없는데... 했지만 내가 틀렸으면 틀렸지 컴퓨터는 틀리지 않는다. 혹시나 싶어서 삭제된 파일 로그를 찾는 명령어를 아무리 쳐봐도 안 나온다 ^^ 이렇게 없어진 파일은 깃이 삭제됐다고 인식하지 않는 건지... 대체 어디서 유실된 걸까... 흑흑... 어디 갔어 얘들아...
아 안일하게 생각하고 브랜치를 나누지도 않고 master에서 온갖 깃 기능 실험도 해보고 난리 쳤는데 결국 이런 사태가 일어났다.
master 브랜치에서 수정, 삭제, 새로운 코드 등 이 플젝에서 뭔갈 하기만 하면 커밋했는데 이럴 때마다 원격 저장소에 바로 push 하다 보니 쓸데없는 커밋도 굉장히 많아지는 것 같다. 당장 브랜치 이름을 뭐로 해야 하나... 하고 고민하다가 stackoverflow에 쳐보니 좋은 댓글들이 많았다. 진짜 나는 stackoverflow 없었으면... 뭐 하고 있었을까... 나아가서 새삼 인터넷의 발전이 너무 감사하다ㅋㅋㅋㅋㅋ
이제는 develop 브랜치에서 작업한다. 오늘 몸살기가 좀 있어서 대충 마무리하고 야호 드디어 내일은 백엔드다! 하면서 커밋하고 컴퓨터 끄고 자러 가려는 순간 이 사단이 났다. 일단 타이레놀 한 알 먹고 날아간 메인 페이지 컴포넌트 다시 만들어야겠다ㅋㅋㅋㅋㅋ후... 한번 만들어봤으니까 더 빨리 만들 수 있겠지 암튼 지금 이 사태를 겪어서 오히려 다행이라는 생각도 든다. 진짜로 지금이 아니더라도 이따위로 깃 사용하다가는 100% 나중에 가서 더 난리가 났을 거다. 하핫 갑자기 긍정적인척ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
아 나도 git 잘쓰고 싶다. 그래도 원격 repo/로컬 repo 헷갈리던 시절(노답)도 있었는데 이런거 저런거 겪으면서 또 배워나가겠지 뭐!
와 난 왜이렇게 멍청할까... git은 나만 어려운걸까 하면서 검색해봤는데 다행히도 나만 어려운건 아닌가보다 급 위로가됐다..
"Git is not hard for everyone but for most of the people living in the world." 빨리 성장해서 most of the people 에서 벗어나고싶다.
'Project Log > RoomieSeoul' 카테고리의 다른 글
[front-end] 비동기 요청 처리하기 - redux-promise-middleware (0) | 2019.09.11 |
---|---|
[back-end] Node.js - express로 구조잡기 (0) | 2019.09.10 |
[front-end] 쉐어하우스 상세페이지 - 다음 지도 API (0) | 2019.09.04 |
[front-end] 찜 목록 페이지 - 이벤트 버블링, Hooks (0) | 2019.09.03 |
[front-end] 글 올리기 페이지 - 예외처리 (0) | 2019.09.02 |