[11/20 TIS] git push가 먹통이 된 날
평화롭게 TDD 프로젝트를 진행하던 어느 날... 갑자기 git push가 거절당했다.
처음 등장한 에러 로그는 아래와 같다.
힌트를 보니 remote에 내가 한 일이 포함되어 있단다. 내가 뭘 했을까... 하고 커밋 내역을 살펴봤다. 충격적인 결과였다.
뭔 README 업데이트를 해버렸구나 내가... 어리석게도 혼자서 진행하는 프로젝트다보니 main브랜치에 모든 진행 과정을 박고 있었고, 당연히 README도 메인에서 바로 수정해서 업데이트 해놨다. 여기서 문제가 발생했다.
- 원격 저장소에는 README가 수정되어있다.
- 로컬 저장소에는 이러한 사실이 반영되지 않았다. 아니 애초에 로컬 저장소에 README가 있었나?
일단 원격 저장소를 pull 받아와 README파일을 로컬에 저장했다. 이후 README 파일을 git에 등록하고 대충 수정해 다시 커밋하고 push 했다.
이번엔 다른 힌트가 나를 반겨줬다. 이것 참 힌트라도 주니 감사하다고 해야하나...
그런데 뭔가 이상하다. pull을 받아왔는데 current branch가 뒤쳐져있다고? 다시 pull을 시도하고 결과값을 확인해봤다.
지져스, pull이 제대로 되지 않았다. 원격 저장소에는 따로 커밋, 로컬에서도 따로 커밋이 진행되다 보니, 원격 브랜치와 로컬 브랜치에 차이가 발생했고 여기서 문제가 발생한 것 같았다. 적절한 pull 전략을 선택해 두 브랜치를 아주 조화롭게 만들어줘야했다. 아니면 아예 현재 브랜치를 로컬에 맞게 바꾸거나.
생각해보니 어짜피 README하나 차이인데, 로컬 브랜치가 최신 버전으로 사용되게 적용시켰고, push도 문제 없이 마무리했다. 이번 기회로 큰 교훈을 얻었다.
혼자 작업한다고 main브랜치를 그대로 사용하는 짓은 하지 말자. 앞으로라도 작업용 브랜치를 하나 파서 사용해야겠다.