본문 바로가기

Git

[Git] fork repository 최신 버전으로 유지하기

728x90
반응형

들어가기

  • 프론트, 백(me!) 레포지토리를 나눠서 사이드프로젝트를 진행 중에 있었다. 프론트 레포지토리를 로컬에 받아서 봐야하는 상황이 생겼다.
  • 내가 Fork한 프론트 프로젝트를 받았는데 자꾸 옛날 커밋 정보만 남아있는 것이다. 신규 작업해주신 커밋 내용이 없었다.

요리보고~ 저리봐도~ 안보이는 코드 ㅠㅠ

  • 아차!! 내가 Fork한 프로젝트는 최신 버전으로 업데이트가 안되는구나.. 깨달았고 민망함에 다음부터는 이러지 말자 깨닫고 진행한 내용을 작성해본다. (git이라고는 master에 푸시밖에 안하는거 들통남..)

0. 기존 상황 가정

  • 예전 시점에 원본 Repository를 Fork 하였고, 이후 원본 Repository가 변화되어있는 상황
  • 로컬에 Fork한 Repository를 받은 상황

이러한 상황에서는 아무리 Pull(Fetch, Merge) 하여도 Fork한 Respository는 원본 기준의 최신상태가 아니기 때문에 포크했던 그 상태와 동일할 것이다. 원본과 동일한 상태를 만드려면 원본 Repository의 remote를 추가하고, 원본의 상태를 당겨와서, Fork한 Repository에 반영해주어야 한다. 아래에서 그 과정을 진행해 보자.

1. upstream remote 추가

보통 원본소스가 있는 곳을 upstream 이라고 명명한다. 이 이름으로 remote를 등록해주자. (Fork한 repository를 로컬에 받을 때 이 작업을 수동으로 해주는 것을 꼭 기억하자!)

 

$ git remote add upstream [원본 repository 주소]

 

원본 repository 가 remote로 등록되지 않은 상태
원본 repository remote 등록된 상태

2. 동기화 하기

원본의 branch의 변경 내용을 local로 받아와서 머지시킨다.

$ git fetch upstream/[브랜치명]
$ git merge upstream/[브랜치명]

3. Fork한 원격 저장소에 반영

동기화까지 완료하면 local 프로젝트가 최신으로 반영된다. Fork한 원격저장소에 반영하려면 push 명령어까지 완료하면 된다.

 

$ git push origin

728x90
반응형