본문 바로가기
협업 툴/git

[git] Fork 한 저장소의 최신 코드 가져오기

by 잔디🌿 2024. 9. 20.

    우리 프로젝트에서는 협업을 위한 repository가 있었다. 이 repository에는 master, feedback, weekly 등의 브랜치가 있었고, 나는 이 repository를 fork한 후 이 저장소를 내 컴퓨터에 clone 했다. 

     

    내가 해야 할 일은 weekly 브랜치에서 작업한 후 작업물을 fork한 저장소의 weekly브랜치에 PR을 날리는 것이었다.

    그 다음 테크리더님이 팀원들의 코드를 merge 하면 이를 내 로컬로 받아온 후 작업을 이어나가야한다.

     

    PR까지는 했지만 코드를 내 로컬로 pull해오는 것에서 문제가 생겼다. 이를 처음 해보는 나는 그냥 git pull하면 되는 것 아닌가?라고 생각했지만

     

    이미 업데이트 되었다고 뜨고 코드에는 아무런 변화가 없었다. 생각해보니 지금 내 로컬과 연결되어있는 저장소는 내가 포크해 온 내 계정 속 저장소라는것을 깨달았다.

     

    그래서 이를 위해 구글링을 열심히 하였다. 그 결과를 기록해보려고 한다!

     

    Merge 안내 받기

    merge 권한이 있는 팀원으로부터 merge가 완료되었다는 것을 안내받는다. 만약 merge가 다 되지 않았는데 pull을 받으면 나중에 또 받아야하고, 충돌의 위험이 있다.

     

    upstream 저장소 확인하기

    git remote -v

    명령어를 통해 upstream 저장소가 있는지 확인한다.

    나는 origin 저장소밖에 없었다.

     

    upstream 저장소에 fork한 Repositoty 추가하기

    git remote add upstream [fork한 repository 주소]

    이렇게 한 후 다시 확인하면

     

    이렇게 추가된 것을 볼 수 있다.

     

    인텔리제이에서도 확인할 수 있다.

     

    fetch하기

    fetch는 원격저장소에 있는 코드를 로컬저장소에 가져오는 역할을 한다. 이는 단순히 가져오는 것이기 때문에 코드에는 반영이 되지 않는다.

    git fetch upstream

     

    merge하기

    merge는 내 로컬에 위에서 가져온 코드를 반영하는 과정이다.

    git merge upstream/브랜치명

    이 과정을 거치면 intellij에 코드들이 다 들어왔을 것이다.

     

    push하기

    그럼 이 코드들을 다시 내 계정의 원격 저장소에 올려야한다. 이건 그냥 기존대로 push하면 된다.

    git push

     

    이제 본격적으로 협업 해야하는데 깃을 다루는게 능숙하지 않을 것 같다

    조만간 나머지공부 해야겠다.

    '협업 툴 > git' 카테고리의 다른 글

    [git] 깃허브 정리  (0) 2024.09.29