반응형

GitHub에서 프로젝트를 fork하여 개인 계정으로 가져오고, 로컬 머신에서 작업하며 upstream 저장소를 설정하고, 최종적으로 수정한 내용을 원본 저장소로 보내는 방법에 대해 자세하게 설명하겠습니다.

왜?? 이렇게 작업하는가?


fork  upstream을 사용하는 주된 이유는 협업 및 컨트리뷰션을 용이하게 하기 위해서입니다. 여러 개발자가 동시에 프로젝트에 기여할 때, 이러한 작업 흐름은 코드 충돌을 방지하고 변경 사항을 조직화하며, 프로젝트의 안정성과 유지 관리를 도울 수 있습니다.

  1. Fork (개인 저장소로 복제):
    • 원본 프로젝트를 직접 수정하지 않고, 자신의 계정으로 fork하여 개인적으로 작업합니다.
    • 이렇게 하면 원본 프로젝트에 직접 영향을 주지 않으면서 개발자는 자신의 변경 사항을 안전하게 실험하고 관리할 수 있습니다.
  2. Upstream (원본 저장소와 연결):
    • upstream은 원본 프로젝트의 최신 변경 사항을 계속해서 추적하는데 사용됩니다.
    • 개발자는 자신의 fork에서 작업하기 전에 원본 프로젝트의 최신 업데이트를 가져와 로컬 저장소를 최신 상태로 유지할 수 있습니다.
  3. Branch (브랜치를 통한 개별 작업):
    • 새로운 브랜치를 만들어서 각각의 작업을 분리하면 여러 개발자가 동시에 작업할 때 충돌을 방지하고, 개별적으로 특정 기능 또는 수정을 진행할 수 있습니다.
    • 이 브랜치는 작업이 완료되면 메인 브랜치로 병합될 수 있습니다.
  4. Pull Request (병합 신청):
    • 개발자는 자신의 fork에서 만든 변경 사항을 원본 프로젝트에 반영하기 위해 Pull Request를 생성합니다.
    • 이를 통해 프로젝트 관리자는 변경 내용을 검토하고, 코드의 품질을 확인한 후에 병합 여부를 결정할 수 있습니다.

이러한 작업 흐름을 통해 프로젝트는 여러 사람이 효율적으로 협업하고, 변경 사항이 제대로 검토되며, 코드 충돌이 최소화되어 유지보수가 용이한 상태를 유지할 수 있습니다.

프로젝트 Fork하기:

  • GitHub에서 원하는 프로젝트로 이동합니다.
  • 프로젝트 페이지 오른쪽 상단에 있는 “Fork” 버튼을 클릭하여 자신의 계정으로 해당 프로젝트를 fork합니다.

로컬 머신에 복제(Clone)하기:

  • 터미널 또는 Git Bash를 열고 다음 명령어를 사용하여 fork한 프로젝트를 로컬 머신으로 복제합니다.
  • Fork한 자신의 Git hub계정의 Url을 clone뒤에 작성합니다.
$ git clone https://github.com/your-username/project.git

Upstream 저장소 추가하기:

  • 프로젝트 디렉토리로 이동한 후 원본 저장소를 upstream으로 추가합니다.
$ cd project 
$ git remote add upstream https://github.com/original-username/project.git

브랜치 만들기 및 작업하기:

  • 새로운 브랜치를 만들어 작업합니다.
$ git checkout -b feature-branch
  • 변경사항을 작업하고 커밋합니다.
$ git add . git commit -m "작업한 내용에 대한 설명"

Upstream 변경사항 가져오기:

  • 원본 저장소의 최신 변경사항을 가져와 로컬에 반영합니다.
$ git fetch upstream git merge upstream/main

본인 계정으로 Push하기:

  • 작업한 브랜치를 자신의 GitHub 계정으로 push합니다.
$ git push origin feature-branch

GitHub에서 Pull Request 생성하기:

  • GitHub 웹사이트에서 fork한 프로젝트로 이동하여 “Compare & pull request” 버튼을 클릭합니다.
  • 변경 내용을 확인하고 “Create pull request” 버튼을 클릭하여 Pull Request를 생성합니다.

원본 저장소로 Pull Request 보내기:

  • Pull Request가 생성된 후, 원본 저장소에 변경사항을 반영하기 위해 “Merge pull request” 버튼을 누르거나 관리자가 검토 후 Merge할 수 있습니다.

이제 당신이 fork한 프로젝트에서 작업한 내용이 원본 저장소로 반영되었습니다.

반응형

+ Recent posts