순간을 기록으로

[Git] 업데이트된 원격 저장소를 로컬 저장소에 반영하기 본문

Development/Git&Github

[Git] 업데이트된 원격 저장소를 로컬 저장소에 반영하기

luminous13 2022. 8. 30. 11:36

상황

로컬에서 작업하다가 다른 팀원분이 작성한 코드에 에러가 났다. 그래서 팀원분에게 문의해보니 이전에 삭제한 파일이므로 원격 저장소에서 업데이트를 파일이 삭제되어 해결될 거라고 알려주셨다. 

 

이 상황외에도 최신 원격 저장소를 로컬 저장소에 업데이트해야 될 때 다음과 같이 해결할 수 있다.

 

설명하기 앞서 간단히 용어를 정의하면 다음과 같다.

  • 원격저장소: 원격 오리지널 저장소. 
  • 포크저장소: 원격 오리지널 저장소를 포크한 저장소
  • 로컬저장소: 포크저장소를 로컬로 clone한 저장소

해결

1.원격 저장소를 로컬 저장소와 연결한다.

아마도 원격 저장소를 포크한 뒤 포크된 저장소를 git clone 한다면 연결되어있는 저장소는 포크된 저장소밖에 없을 것이다. 따라서 원격 저장를 추가해야 한다.

 

  • git remote add upstream [원격저장소]
  • git remote -v

다음과 같이 git remote -v를 이용하면  upstream 저장소가 추가로 연결되었음을 확인할 수 있다.

참고로 upstream은 원격저장소 이름을 보통 upstream이라고 작성한다. upstream 용어는 상대적인 용어라 원격 저장소가 될 수 있고 포크 저장소가 될 수 있다. 따라서 추가로 찾아보면 좋다.

 

2.최신 원격 저장소 내용을 가져온다.

  • git fetch upstream main
    • upstream: 자신이 정한 원격 저장소 이름
    • main: 가져오고자 하는 원격 저장소의 브랜치 이름

나는 원격 저장소(upstream)에 dev 브랜치를 가져와야 돼서 git fetch upstream dev 명령어를 사용했다.

  • git branch -a

위 명령어를 사용하면 모든 브랜치 목록을 확인할 수 있다. 이 명령어를 사용해서 upstream의 dev 브랜치가 가져왔는지 확인하자

마지막 빨간 줄을 보면 upstream/dev 브랜치가 생긴 것을 확인할 수 있다.

 

3.반영하기

  • git merge [원하는 브랜치] 

해당 명령어를 치면 fetch로 가져온 브랜치를 합칠 수 있다.

나는 git merge upstream/dev를 현재 브랜치인 feature/BE/users와 upstream/dev 브랜치를 합쳐서 최신 원격 저장소 내용을 반영할 수 있었다.

 

느낀 점

깃을 혼자 하다가 팀 프로젝트를 하면서 다양한 상황을 접하게 된다. 프로젝트 진행에 있어서 Git 학습의 중요성을 다시 한번 느낄 수 있었다.

 

참고

https://monynony0203.tistory.com/entry/Git-%EC%9B%90%EA%B2%A9-%EC%A0%80%EC%9E%A5%EC%86%8C-%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8-%EB%90%9C-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EB%A1%9C%EC%BB%AC-%EC%A0%80%EC%9E%A5%EC%86%8C%EB%A1%9C-%EB%B6%88%EB%9F%AC%EC%98%A4%EA%B8%B0fetch-pull-Git-Team-Project-%ED%98%91%EC%97%85

Comments