000. git upstream으로 다 쳐놓은 코드를 리셋시키다.

2021. 6. 6. 21:36개발공부/[프로그래머스] 주문관리 API 분석하기


프로그래머스 실력 체크 문제 주문관리 API를 IDE로 옮겨 풀려고 코드를 클래스별로 복사했습니다. 프로젝트 환경은 spring boot initalize로 새로 생성하기가 귀찮아 기존있던 연습용 프로젝트 디렉토리를 복사해 로컬에 붙여넣었습니다. 모두 마치고 IDE 터미널을 이용해 git repo와 연동시켰습니다. 하지만 로컬 디렉토리 전체를 복사했기 때문에 .git/config 파일도 완전히 동일하단 것을 크게 주의하지 않아 git upstream을 잘못 사용해 결국 기존 프로젝트 repo가 clone되어 작성했던 코드가 모두 날라갔습니다. 

근본 원인은 복붙한 .git/config 파일을 완전히 리셋해주지 않았던 것이었고 다른 원인은 git branch가 비었다는 오류가 뜨면서 push가 되지 않자 git upstream이 뭔지 정확히 모른채 사용했다는 점입니다. 그래서 처음부터 다시 코드를 복사하는 벌을 받게 되었습니다...

로컬 디렉토리 복사 오류 :

 1. 코드를 수정하고 git remote rm으로 repo 연결해제

 2. 새로 생성한 repo로 git remote 연결

 3. git config --local user.email 변경

 4. git commit

 5. git push 시 branch empty 오류 발생

 6. git add upstream origin (여기서 리셋된 것으로 보임)

   - 제대로 현재 repo가 변경되지 않은 채로 upstream 명령어를 사용했기 때문에 기존 repo가 pull된 것으로 보입니다.

   - upstream이란 소스를 받아온 기존 repo 입니다. origin과 대비되는 개념입니다. 왜냐하면 origin은 현재 프로젝트를 가리키기 때문입니다.

7. 만들어진 master branch로 checkout

8. git push

9. 코드 수정하기 전의 repo로 커밋되어 있고 수정한 코드는 기록이 삭제됨.