오픈소스 프로젝트에 기여하거나 협업할 때, GitHub에서 리포지토리를 포크(Fork)한 후에도 원본 리포지토리의 변경 사항을 반영하고 동기화하는 과정이 필요합니다. 이 글에서는 포크한 리포지토리를 원본과 최신 상태로 유지하면서, 새로운 작업 브랜치를 생성해 작업을 진행하는 방법을 단계별로 설명하겠습니다.
포크한 리포지토리는 처음에는 원본 리포지토리와 동일하지만, 시간이 지남에 따라 원본 리포지토리가 업데이트될 수 있습니다. 이를 포크한 리포지토리에 반영하기 위해 원본 리포지토리의 변경 사항을 받아와야 합니다.
먼저, 포크한 리포지토리에는 원본 리포지토리의 주소를 'upstream'이라는 이름으로 추가합니다.
git remote add upstream https://github.com/원본-리포지토리-주소.git
여기서 https://github.com/원본-리포지토리-주소.git
는 원본 리포지토리의 URL입니다. 이를 통해 원본 리포지토리의 최신 상태를 쉽게 가져올 수 있습니다.
'upstream'으로 원본 리포지토리를 추가한 후, 원본 리포지토리의 최신 커밋을 가져옵니다.
git fetch upstream
이 명령어를 실행하면 원본 리포지토리의 모든 브랜치에 대한 최신 정보를 로컬로 가져옵니다.
가져온 최신 정보를 바탕으로 로컬 리포지토리의 'main' 브랜치를 원본과 동기화합니다.
git checkout main
git merge upstream/main
이 과정을 통해 'main' 브랜치는 원본 리포지토리의 최신 상태와 동일하게 유지됩니다.
동기화된 'main' 브랜치에서 새로운 작업 브랜치를 생성해 작업을 시작할 수 있습니다. 새로운 작업 브랜치는 기능 단위로 관리하는 것이 좋습니다.
예를 들어, 'fix-get-method'라는 이름의 새로운 작업 브랜치를 생성하려면 다음 명령어를 사용합니다.
git checkout -b feature/TaskerJang/120
이제 새로운 브랜치에서 코드를 수정하고 변경 사항을 추가할 수 있습니다.
작업을 완료한 후에는 변경 사항을 커밋하고 GitHub에 푸시하여 공유할 수 있습니다.
변경 사항을 저장소에 커밋하려면 다음과 같이 명령어를 실행합니다.
git add .
git commit -m "Fix the incorrect GET method in the example code #120"
변경 사항을 GitHub 리포지토리로 푸시합니다.
git push origin feature/TaskerJang/120
이 과정을 통해 GitHub에 있는 자신의 리포지토리에 최신 변경 사항이 반영됩니다.