Git fork 동기화는 원본 저장소의 변경 사항을 포크한 저장소에 반영하는 과정입니다. 포크한 저장소에서 원본 저장소의 변경 사항을 반영하지 않으면, 원본 저장소에서 개발된 새로운 기능이나 버그 수정 사항을 사용할 수 없게 됩니다.
Git fork 동기화는 다음과 같은 단계로 진행됩니다.
- 원본 저장소의 URL을 확인합니다.
- 포크한 저장소에 원본 저장소를 upstream으로 설정합니다.
- 원본 저장소의 변경 사항을 가져옵니다.
- 원본 저장소의 변경 사항을 포크한 저장소에 병합합니다.
원본 저장소의 URL 확인
원본 저장소의 URL은 GitHub에서 확인할 수 있습니다. 원본 저장소의 페이지에서 Code 버튼을 클릭하면 URL이 표시됩니다.
포크한 저장소에 원본 저장소를 upstream으로 설정
포크한 저장소에 원본 저장소를 upstream으로 설정하면 원본 저장소의 변경 사항을 가져오거나 병합할 때 사용할 수 있습니다.
git remote add upstream <원본 저장소의 URL>
원본 저장소의 변경 사항을 가져오기
원본 저장소의 변경 사항을 가져오려면 다음 명령을 실행합니다.
git fetch upstream
이 명령을 실행하면 원본 저장소의 변경 사항이 로컬 저장소의 origin/master 브랜치에 반영됩니다.
원본 저장소의 변경 사항을 포크한 저장소에 병합
원본 저장소의 변경 사항을 포크한 저장소에 병합하려면 다음 명령을 실행합니다.
git merge upstream/master
이 명령을 실행하면 원본 저장소의 변경 사항이 포크한 저장소의 master 브랜치에 병합됩니다.
예시
다음은 Git fork 동기화의 예시입니다.
# 원본 저장소의 URL 확인
git clone https://github.com/example/my-project.git
cd my-project
git remote -v
origin https://github.com/<사용자 이름>/my-fork.git
# 포크한 저장소에 원본 저장소를 upstream으로 설정
git remote add upstream https://github.com/example/my-project.git
# 원본 저장소의 변경 사항을 가져오기
git fetch upstream
# 원본 저장소의 변경 사항을 포크한 저장소에 병합
git merge upstream/master
이 명령을 실행하면 원본 저장소의 변경 사항이 포크한 저장소의 master 브랜치에 반영됩니다.
주의사항
원본 저장소와 포크한 저장소의 브랜치 구조가 다를 경우 병합 충돌이 발생할 수 있습니다. 이 경우 충돌을 해결한 후 다시 병합해야 합니다.
원본 저장소와 포크한 저장소의 브랜치 구조가 동일한 경우에도, 원본 저장소에서 개발된 새로운 기능이나 버그 수정 사항을 포크한 저장소에서 사용하려면 반드시 병합해야 합니다.