실전 협업의 핵심인 포크와 풀 리퀘스트를 다룬 초보자용 GitHub 가이드
Source: Dev.to
🚀 GitHub 입문자 가이드 (포크, 풀 리퀘스트, 협업)
GitHub는 개발자들이 코드를 저장하고, 협업하며, 프로젝트에 기여하는 곳입니다. Git이 엔진이라면, GitHub는 그 위에 구축된 소셜 플랫폼이라고 생각하면 됩니다.
간단히 정리해 보겠습니다.
GitHub는 온라인에서 Git 저장소를 호스팅하는 웹사이트입니다.
이를 통해 할 수 있는 일:
- 클라우드에 코드를 저장
- 다른 사람과 협업
- 오픈소스 프로젝트에 기여
- 변경 사항과 히스토리 추적
👉 Git은 로컬 노트북, GitHub는 코드용 구글 드라이브라고 생각하면 됩니다.
포크(Fork)
다른 사람의 저장소를 자신의 GitHub 계정 아래에 복사한 것입니다.
- 원본 프로젝트를 편집할 권한이 없음
- 안전하게 실험하고 싶을 때
- 오픈소스 프로젝트에 기여하고 싶을 때
- GitHub에서 Fork 버튼을 클릭합니다.
- GitHub가 내 계정에 복사본을 생성합니다.
- 원본 프로젝트에 영향을 주지 않고 자유롭게 편집할 수 있습니다.
풀 리퀘스트(Pull Request)
다른 사람의 프로젝트에 변경 사항을 제안하는 방법입니다.
다음과 같이 생각하면 됩니다:
“제가 개선한 부분이 있어요—검토하고 프로젝트에 반영해 주세요.”
- 저장소를 포크합니다.
- 로컬 컴퓨터에 클론합니다.
- 변경을 합니다.
- 포크에 푸시합니다.
- 풀 리퀘스트를 엽니다.
GitHub에서:
- 기여하고 싶은 저장소를 엽니다.
- Fork 버튼을 클릭합니다 (오른쪽 상단).
Step 2: Clone your fork
https://github.com/your-username/repo-name.git
Step 3: Create a branch (important!)
Never work directly on main.
git checkout -b my-feature
코드 편집기는 평소처럼 파일을 수정합니다.
Step 6: Push to your GitHub fork
git push origin my-feature
GitHub에서 내 포크로 이동합니다:
Compare & pull request 버튼을 클릭합니다.
- 제목과 설명을 추가합니다.
- Create Pull Request 를 클릭합니다.
🔍 5. 풀 리퀘스트를 보낸 뒤에 무슨 일이 일어나나요?
풀 리퀘스트를 제출하면:
- 유지 관리자가 코드를 검토합니다.
- 변경을 요청할 수 있습니다.
- 추가 커밋으로 PR을 업데이트할 수 있습니다.
- 승인되면 🎉 머지 됩니다.
원본 저장소는 시간이 지나면서 변합니다. 포크를 최신 상태로 맞춰야 합니다:
https://github.com/original-owner/repo.git
최신 변경 사항 가져오기:
git fetch upstream
git merge upstream/main
용어 정리
| Term | Meaning |
|---|---|
| Repo | GitHub에 있는 프로젝트 폴더 |
| Fork | 저장소의 개인 복사본 |
| Clone | 저장소를 내 컴퓨터에 다운로드 |
| Branch | 별도의 작업 버전 |
| Commit | 저장된 변경 사항 |
| Pull Request | 변경 사항을 머지해 달라는 요청 |
| Merge | 변경 사항을 메인 프로젝트에 합치기 |
- 항상 feature branch 를 사용하세요.
- 다른 사람의 저장소에 직접 푸시할 수 없습니다.
- 작업을 작고 의미 있는 커밋으로 나누세요.
예시: 웹사이트에서 오타를 수정한다면:
- 저장소를 포크
- 클론
- 오타 수정
- 변경 푸시
- PR 제출
- 유지 관리자가 머지
🎉 이제 오픈소스에 기여한 것입니다!
GitHub는 협업과 기여가 핵심입니다. 포크와 풀 리퀘스트를 이해하면 다음을 할 수 있습니다:
- 실제 프로젝트에 참여
- 오픈소스에 기여
- 개발자 포트폴리오 구축
- 기술 기업에서 전문가처럼 일하기
다음에 보고 싶은 내용이 있나요?
- 🧪 첫 PR을 연습할 수 있는 오픈소스 프로젝트
- 💼 기업이 실제로 GitHub를 사용하는 방식 (실제 워크플로)
- 🧠 완벽한 풀 리퀘스트 설명 작성법
- ⚡ GitHub Actions (CI/CD 자동화 기본)
원하는 것을 알려 주세요 👍