팀워크: 포크, 기능 브랜치 및 풀 리퀘스트
이 섹션은 오픈소스와 기업 팀의 90%가 어떻게 협업하는지 설명합니다. fork → feature-ветка → 커밋 → pull request → 코드 리뷰 → 병합의 전체 과정을 배웁니다. 또한 PR 설명을 작성하여 리뷰어가 즉시 맥락을 이해할 수 있는 방법과 초보자에게 흔한 PR 실수를 다룹니다.
- 표준 fork → PR 사이클을 통해 모든 오픈소스 프로젝트에 기여할 수 있습니다.
- 리뷰어가 추가 질문 없이 작업을 이해할 수 있도록 pull request를 작성하는 방법을 배웁니다.
- 코드 리뷰에서 지적 사항에 올바르게 대응하는 기술적, 소통적 방법을 이해합니다.
강의 시작 부분
포크 — 나만의 실험 공간
- 포크는 GitHub에 있는 리포지토리의 개인 복사본입니다
- 원본에 영향을 주지 않으면서 완전한 제어가 가능합니다
- 원본 프로젝트와의 연결을 유지합니다
- 실험 및 오픈소스 기여에 이상적입니다
도서관에서 흥미로운 책을 발견했지만, 그 책에 필기를 할 수 없다고 상상해보세요. 포크는 바로 이 문제를 해결해 줍니다. GitHub에 여러분만의 리포지토리 개인 복사본을 생성하여, 원본 프로젝트를 손상시킬 위험 없이 코드로 실험할 수 있습니다. 이는 아이디어를 테스트하거나 다른 사람의 프로젝트에 기여해야 할 때 특히 유용합니다. 포크는 원본 리포지토리에 연결되어 있어 업데이트를 추적하고 변경 사항을 작성자에게 다시 보내기가 쉽습니다.
GitHub에서 포크 생성 방법
- 오른쪽 상단의 Fork 버튼을 클릭합니다
- 대상으로 자신의 계정을 선택합니다
- 복사본이 생성될 때까지 기다립니다
- 로컬 머신에 포크를 클론합니다
GitHub에서 원하는 리포지토리를 열고 오른쪽 상단에 있는 'Fork' 버튼을 찾으세요. 클릭한 후 대상으로 자신의 계정을 선택합니다. 몇 초 후 GitHub가 프로필에 리포지토리의 정확한 복사본을 생성합니다. 이제 git clone 명령어로 컴퓨터에 복제하고 작업을 시작할 수 있습니다. 원본 리포지토리가 아닌 자신의 포크를 복제하고 있는지 확인하는 것을 잊지 마세요.
# 컴퓨터에 포크 복제
git clone https://github.com/your-username/repository.git
# 프로젝트 디렉토리로 이동
cd repository
# 원격 리포지토리 확인
git remote -v
포크 vs 클론: 차이점은?
- 클론: 컴퓨터에 있는 로컬 복사본
- 포크: GitHub 계정에 있는 원격 복사본
- 포크는 원본 리포지토리와의 연결을 유지합니다
- 변경 사항 동기화에 편리합니다
두 프로세스 모두 리포지토리의 복사본을 생성하지만, 근본적인 차이점이 있습니다. 클론은 코드를 컴퓨터에 다운로드하는 반면, 포크는 GitHub 계정에 원격 복사본을 생성합니다. 포크는 원본 프로젝트와의 연결을 유지하여 변경 사항을 쉽게 동기화할 수 있습니다. 이것이 오픈소스 프로젝트에 참여할 때 핵심적인 포인트입니다. 포크에서 작업한 후 pull request를 통해 작성자에게 변경 사항을 제안합니다. 이제 프로젝트 복사본을 만들었으니 로컬 머신으로 가져와서 작업하는 방법을 배워보겠습니다.
전체 강의는 구독 후 이용 가능
전체 버전에는 30개의 슬라이드가 더 있습니다.
로그인하고 구독하면 영상, 모든 슬라이드, 노트, 테스트, AI 튜터, 면접을 이용할 수 있습니다.
로그인 또는 회원가입 구독하기강의 목차
- 포크 — 나만의 실험 공간
- GitHub에서 포크 생성 방법
- 포크 vs 클론: 차이점은?
- 컴퓨터에 포크 복제하기
- 동기화를 위한 upstream 추가
- 원격 리포지토리 확인
- 별도 브랜치가 필요한 이유는?
- 기능(feature) 브랜치 만들기
- 브랜치 이름을 올바르게 짓는 방법
- 원자적 커밋이 필요한 이유
- 완벽한 커밋 메시지 작성하기
- 커밋에서 흔한 실수들
- 포크에 브랜치를 게시하는 이유
- 브랜치 게시를 위한 git push 명령어
- 게시된 브랜치 확인하기
- Pull Request: 변경 요청서
- PR 제목: 간결하고 요점만
- PR 설명: 무엇을, 왜, 어떻게 확인할지
- PR에서 흔한 실수
- PR 괴물: 왜 큰 풀 리퀘스트가 리뷰를 망치는가
- PR 설명: 설명할 기회이지, 사과할 기회가 아니다
- 하나의 PR에는 하나의 작업: 관련 없는 변경 사항을 섞지 않는 방법
- 코드 리뷰: 편집자와의 대화
- 모든 리뷰 코멘트에 답변하기
- 수정 사항을 별도의 커밋으로 기록하기
- 병합 충돌이 발생하는 이유
- 병합 전에 브랜치 업데이트하기
- 충돌 찾기 및 수정하기
- 충돌 해결 완료하기
- 성공적인 병합 후 정리
- GitHub에서 Feature 브랜치 삭제하기
- 로컬 저장소 업데이트하기
- 팀워크 마스터: 포크부터 머지까지
이 강의 관련 글
- Git과 GitHub: 무엇이 다르고 어떻게 연결되나요
- Git 설치 방법: Windows, macOS, Linux
- Git이란 무엇이고 개발자에게 왜 필요한가
- Git Bash란 무엇이고 Windows에서 어떻게 쓰나요
- git fetch와 git pull: 차이점과 선택 기준
이 강좌의 모든 강의
- 소개: 완전 초보에서 자신 있는 개발자로 성장하기 위한 Git
- Git가 왜 필요한가? — 취업에 왜 필수인가
- Git 설치 및 설정: 첫 실행을 위한 준비
- 첫 번째 저장소: init, add, commit과 인덱스의 마법
- 히스토리 읽기: log, diff, show 및 과거 탐색
- 브랜치: 코드의 평행 현실
- 오류 취소하기: restore, reset, revert — 올바른 방법과 위험한 방법
- GitHub 및 원격 저장소: 클라우드에 코드 저장하기
- 팀워크: 포크, 기능 브랜치 및 풀 리퀘스트
- 병합 충돌: 당황하지 말고 이해하고 해결하기
- 실제 팀의 Git 프로세스: 어떤 워크플로우를 선택할까
- 고급 도구: 리베이스, 스태시, 체리픽 및 태그
- 최종 프로젝트: 실제 팀 개발 시뮬레이션