Fork와 Clone (ft.컨트리뷰트 과정)

Songss·2025년 2월 18일
0

개발지식

목록 보기
7/16

GitHub에서 오픈소스 프로젝트를 사용할 때 ForkClone은 중요한 개념입니다.

둘 다 저장소(repository)를 복사하는 방법이지만, 의미와 용도가 다릅니다

🛠 1. Fork란?

🔹 Fork는 원본 프로젝트(repository)의 사본을 내 GitHub 계정으로 복사하는 것입니다.

✅ Fork의 특징

  • 내 GitHub 계정에 저장소가 새롭게 생성됨.
  • 원본 프로젝트와 완전히 독립적이지만, 원할 경우 PR(Pull Request)을 통해 원본 저장소에 기여할 수 있음.
  • Fork한 저장소에서 코드 수정이 가능하며, 필요하면 원본 프로젝트에 다시 반영할 수 있음.
  • GitHub에서만 이루어지는 작업이며, 로컬 컴퓨터에는 영향을 주지 않음.

📌 Fork 예시

1️⃣ GitHub에서 오픈소스 프로젝트 페이지로 이동

2️⃣ Fork 버튼 클릭

3️⃣ 내 계정으로 프로젝트가 복사됨 → github.com/my-username/project-name

4️⃣ 필요하면 Clone하여 로컬에서 개발 가능

🛠 2. Clone이란?

🔹 Clone은 GitHub 또는 원격 저장소(Remote Repository)에 있는 코드를 내 로컬 컴퓨터로 다운로드하는 것입니다.

✅ Clone의 특징

  • 내 컴퓨터에서 직접 코드를 수정할 수 있도록 로컬에 저장됨.
  • git clone 명령어를 사용하여 원격 저장소를 로컬로 가져옴.
  • 원본 저장소와 연결된 상태이므로, git pull, git push 등의 명령어로 원본과 동기화 가능.

Q. 그렇다면 Push단계, PR단계는 어떻게 해야되는 걸까 ?

✅ Push는 내 로컬에서 내 GitHub 레포지토리로!

  • Push로컬에서 작업한 내용을 내 GitHub 저장소(Fork한 저장소)로 올리는 과정입니다.
  • 즉, 내 컴퓨터 → 내 GitHub 레포지토리로 변경 사항을 업로드하는 것입니다.

✅ PR은 내 GitHub 레포지토리에서 원본 프로젝트로!

  • PR(Pull Request)은 Fork한 내 GitHub 저장소에서 원본 프로젝트로 변경 사항을 요청하는 과정입니다.
  • 즉, 내 GitHub 저장소 → 원본 프로젝트(GitHub 저장소)로 요청을 보내는 것입니다.

📌 PR을 만드는 과정

  1. 내 GitHub 저장소(포크한 레포)에서 Pull Request 버튼 클릭
  2. “비교 대상(Compare & Pull Request)” 버튼을 클릭
  3. 변경 내용을 설명하고 Create Pull Request 버튼 클릭

✅ 이제 원본 프로젝트 관리자가 PR을 리뷰 후 Merge 여부를 결정합니다.

Q. Pull Request시 내가 작업한 dev브랜치를 PR하는거지 ?

보통 오픈소스 프로젝트에서는 main이 아닌 dev 브랜치로 PR을 보내는 경우가 많습니다.

📌 1. 프로젝트가 dev 브랜치를 운영하는 경우

  • main 브랜치는 안정적인(Stable) 배포 버전을 유지합니다.
  • dev 또는 develop 브랜치는 새로운 기능 개발 및 변경 사항이 반영되는 브랜치입니다.
  • 이 경우, PR을 main이 아니라 dev 브랜치로 보내야 합니다.

📌 이슈 트래커(예: GitHub Issues)에 명시된 PR 규칙을 확인하세요!

✅ 예를 들어, CONTRIBUTING.md 파일을 보면 "Pull requests should be made to the dev branch"라고 적혀 있을 수 있습니다.

📌 2. 프로젝트가 main 브랜치에서만 운영되는 경우

일부 소규모 프로젝트는 dev 브랜치를 따로 운영하지 않고, 바로 main에서 개발을 진행합니다.

이 경우, PR을 main 브랜치로 보내면 됩니다.

📌 GitHub 저장소의 Pull Request 가이드를 확인하는 것이 중요! 🚀

0개의 댓글