Github에서 특정 프로젝트를 Fork 하면, 원본 저장소를 자신의 저장소로 복사합니다. 이제 옮겨진 저장소에 기능을 추가하거나 내용을 수정하고 커밋을 하더라도 원본 저장소와 분리되어 있으므로 영향을 끼치지 않습니다.
어느 정도 시간을 흐르고 난 뒤, 다시 원본 저장소를 살펴보면 자신이 Fork 한 시점보다 커밋이 많이 되어 있는 것을 볼 수 있습니다. 물론 원본 저장소에서는 변경된 사항이 반영되어 있지만, Fork한 저장소는 해당 사항이 반영되어 있지 않습니다. 그래서 원본 저장소와 동기화 할 필요가 있습니다. 나중에 PR(Pull Request)를 할 때, Conflict를 줄일 수 있는 것뿐만 아니라 최신 변경된 사항을 바로 알 수 있기 때문입니다.
그래서 이번 글에서는 Fork 한 저장소를 원본 저장소와 동기화 하는 방법을 알아보고자 합니다.
Github 원본 저장소의 주소 추가
Fork 한 저장소를 로컬 어딘가에 clone 해왔을 것 입니다. 해당 위치로 가서 git remote -v 명령어를 실행하면, 현재 저장소의 원격 주소가 어떻게 설정 되어 있는지 확인할 수 있습니다.'
git remote -v
원본 저장소 위치는 설정되어 있지 않고, Fork 한 저장소 주소만 설정되어 있습니다. 이제 원본 저장소 위치를 추가하겠습니다. Github에서 원본 저장소에 가면, https 또는 ssh 방법을 선택하고 원본 저장소의 주소를 얻을 수 있습니다.
원본 저장소 위치를 추가하고, 다시 git remote -v
명령어를 실행합니다.
Fork 한 저장소 원본 저장소와 동기화 하기
1. 원본 저장소 내용을 fetch 합니다. 이 때, git fetch upstream 명령어를 실행합니다.
git fetch upstream
2. Fork 한 저장소의 master 브랜치로 체크아웃합니다. 이때, git checkout master 명령어를 실행합니다.
git checkout master
3. 로컬 master 브랜치와 원본 저장소 master 브랜치 병합(merge)합니다.
git merge upstream/master
4. 로컬 master 브랜치를 push하면, 자신의 Github 저장소 내용이 원본 저장소와 최신 동기화된 상태가 됩니다. 이 때, git push origin 명령어를 사용합니다.
git push origin
'Git' 카테고리의 다른 글
Github Action 에서 Submodule 설정 방법 (0) | 2020.02.28 |
---|---|
Git 현재 작업 브랜치 확인, 브랜치 생성 및 삭제 (0) | 2019.04.11 |
댓글