포크와 오픈소스 기여
포크와 오픈소스 기여 — upstream 동기화·DCO·기여 규칙
포크(fork)는 내 소유가 아닌 저장소를 내 계정 아래로 복사하는 기능입니다. 원본은
upstream, 내 포크는origin으로 두고, 이슈 확인부터 브랜치·커밋·Pull Request(PR)·동기화까지 이어지는 흐름이 오픈소스 기여의 기본 절차입니다.
1. 왜 배우는가
회사 안 저장소는 보통 팀원 모두가 push 권한을 가집니다. 하지만 외부 오픈소스 프로젝트는 다릅니다. 대부분의 참여자는 원본 저장소에 push 권한이 없고, 포크한 자기 복사본에만 권한이 있습니다.
이 구조 때문에 원격 이름부터 헷갈립니다. origin 이 포크인지 원본인지, upstream 을 언제 추가하는지 모르면 첫 커밋부터 막힙니다. 회사 안 프로젝트도 여러 저장소를 참조 전용(upstream)으로 당겨 쓸 때 같은 구조를 씁니다.
기여가 늦어지면 원본이 먼저 앞서 나갑니다. 이때 내 포크와 브랜치를 어떻게 최신으로 맞추는지, DCO 서명은 왜 요구하는지를 몰라 PR 이 반려되는 경우가 흔합니다. 이 레슨은 그 실패를 구조적으로 없애는 절차를 다룹니다.