글 작성자: 개발자 올라프

 

코딩을 하다 보면 Fork를 통해서 본인 저장소에서 작업하다가, 원본 저장소 최신 커밋을 반영해야 하는 경우가 발생한다. 아래 과정을 통해서 해결해보자.

 


 

Github

 

 

Fork를 진행한 원본 저장소에 커밋이 추가되면 깃허브 상단에는 본인 저장소가 원본 저장소 main 브랜치 보다 한 개의 커밋이 뒤쳐져 있다는 사실을 알려준다.

 


 

원본 저장소 remote 등록하기

 

  • 리모트 저장소에 원본 저장소를 설정해야 원본 저장소 작업을 본인 저장소에 반영할 수 있으며, 이를 통해서 협업이 가능하다.
  • 아래 명령어를 통해서 리모트 저장소 확인이 가능하다.
$ git remote -v

 

  •  git remote -v 명령어 입력 후, 아래 결과가 나온다면 원격 저장소 설정이 되지 않은 상태이다.
origin https://github.com/<본인 유저명>/<본인 레포지토리>.git (fetch)
origin https://github.com/<본인 유저명>/<본인 레포지토리>.git (push)

 

  •  upstream 명으로 원격 저장소를 추가한다.
  • 주소는 원본 저장소를 입력한다.
$ git remote add upstream https://github.com/<원본 유저명>/<원본 레포지토리>.git

 

  •  git remote -v 명령어를 통해 upstream이 추가되었는지 확인한다.
origin https://github.com/<본인 유저명>/<본인 레포지토리>.git (fetch)
origin https://github.com/<본인 유저명>/<본인 레포지토리>.git (push)
upstream  https://github.com/<원본 유저명>/<원본 레포지토리>.git (fetch)
upstream  https://github.com/<원본 유저명>/<원본 레포지토리>.git (push)

 


 

원격 저장소 최신 commit 내용 가져오기

 

  • fetch : 원격 저장소에 변경 사항이 있는지 확인하고, 변경 데이터를 로컬 Git에는 가져오지 않는다.
  • pull : 원격 저장소에서 변경된 메타 데이터 정보를 확인하고, 최신 데이터를 복사하여 로컬 Git에 가져온다.

 

  • 최신화가 필요한 브랜치로 이동한다.
$ git checkout <브랜치명>

 

  • 원격 저장소에 최신 커밋 내역을 가져온다. 필요에따라 fetch 혹은 pull 명령어를 이용한다.
$ git fetch upstream
$ git merge upstream/main

 

  • 본인 저장소에 최신 커밋 내용을 반영한다.
$ git push origin main

 


 

'⭐️ Management > Git' 카테고리의 다른 글

Git 커밋 컨벤션  (4) 2022.11.24