django 팀과제 첫 날인 어제는 팀 프로젝트 SA를 작성하고 팀원들과 구상하는 시간이었다.
주제, 역할 등과 API명세서와 ERD, 와이어프레임을 구성했다.

오늘은 2일차!
코드를 짜면서 막히는 부분보다 더 답답했던 sync fork.. 이것을 꼭 기록으로 남기고자 한다.

문제점

팀장님의 레파지토리에서 포크해와서 작업하던 중 팀장님의 변경사항을 git pull 하고자 했다.
근데 sync fork가 아무리해도 업데이트 되지 않았다.
특히 이상한 점은 tweet 앱 안의 view.py의 내용은 바뀌지 않았지만 다른 파일은 바뀌었다는 점.

시도

아직 git을 다루는데에 익숙하지 않아서 git branch postdetail.. git merge master.. git checkout postdetail.. git pull.. git pull.. 등등 오락가락하면서 해결하고자 했다.
모든 브랜치를 삭제해 보기도 하고, 삭제한 뒤에 하나의 브랜치를 다시 만들어서 master을 옮겨놓고 다시 master로 pull하기도 하고..

그러던 중 특히

git push --set-upstream origin postdetail

이 코드를 사용한 이후 sync fork가 맛이 간 것 같다고느꼈다.

이후에

git pull 원격저장소이름 원격저장소의브랜치이름

이 코드도 사용해 봤지만 fork 레파지토리라 그런건지 내가 이미 꼬아놔서 그런건지 통하지 않았다.

해결방법

  1. 원본 레파지토리의 리모트 레파지토리 확인
$ git remote -v

하면

$ git remote -v
origin  https://github.com/rlfrhdiddl/Django_Team_Project (fetch)
origin  https://github.com/rlfrhdiddl/Django_Team_Project (push)

이렇게 나온다.

  1. 동기화 해오고 싶은 원본 레파지토리를 upstream으로 추가
$ git remote add upstream <원본 repository url>

다시 git remote -v를 통해 확인해보면, 나같은 경우

$ git remote -v
origin  https://github.com/rlfrhdiddl/Django_Team_Project (fetch)
origin  https://github.com/rlfrhdiddl/Django_Team_Project (push)upstream        https://github.com/sungsu05/Django_Team_Project (fetch)
upstream        https://github.com/sungsu05/Django_Team_Project (push)

이렇게 잘 나온다!

  1. upstream repository의 내용 불러오기
$ git fetch upstream
  1. 이후 나의 local master(또는 main) branch로 checkout 하기
$ git checkout master(또는 main)
  1. upstream repository의 원하는 branch를 나의 local master branch로 merge하기
$ git merge upstream/master

여기까지 해서 sync fork 문제를 해결할 수 있었다!

profile
가보자고

0개의 댓글

관련 채용 정보