여러분은 지금까지 레슨에서 PR을 만들고, 머지하는 방법까지 익혔습니다. 그 과정에서 머지의 다양한 방법도 배우고, 각각의 장단점도 함께 익히셨을 텐데요.
이번 레슨에서는 Fork라는 새로운 개념을 익혀볼게요. Fork는 Git의 기능이 아니라 Git을 호스팅 하는 서비스인 GityHub나 GitLab과 같은 서비스에서 제공하는 기능입니다. Fork는 이미 존재하는 원격 Git repository를 사용자의 계정으로 복사하는 기능입니다. 기존 repository에서의 모든 변경 사항을 담고 있는, 내가 소유한 새로운 repository를 만들어 주는 기능입니다. Fork 된 repository는 기존 repositry와 완전히 분리되어 있으므로 사용자는 자신의 repository에서 자유롭게 변경 사항을 반영할 수 있습니다. 작업이 끝난 후에는 Pull Request 기능으로 원본 repository에 기여할 수도 있습니다.
브랜치를 사용한 방식은 원본 저장소에 직접 접근하여 작업하고, 변경 사항을 PR로 제안하는 방식입니다. 이 방식은 작업 효율성이 좋고, 원본 저장소에서 직접 협업할 수 있다는 장점이 있습니다. 따라서 일반적인 규모의 팀이나 팀원들은 이 방식으로 협업하는 것이 일반적입니다.
반면 Fork를 사용한 방식은 Fork 된 저장소에서 작업을 진행하고, 원본 저장소의 소유자에게 PR을 제안하는 방식입니다. 오픈소스 프로젝트는 Fork를 사용해 PR을 생성하는 대표적인 예입니다. 오픈소스는 다양한 규모의 팀, 커뮤니티 및 개인들이 참여하는 매우 큰 규모의 프로젝트입니다. 이러한 규모의 프로젝트에서는 다양한 개인, 팀이 참여하는 만큼, 코드를 수정할 수 있는 권한 관리도 필요합니다. 또한 단일 브랜치만으로는 작업이 충분하지 않을 때가 많습니다. 따라서 다수의 개발자가 각자의 저장소에서 독립적으로 작업하고 변경 사항을 제안할 수 있는 Fork를 기반한 PR을 많이 사용합니다. 또한, 개발자는 자신의 저장소에서 브랜치를 생성하고 작업하기 때문에 심리적인 부담도 적습니다.
GitHub에서 원하는 프로젝트의 페이지로 이동합니다.
우측 상단에 있는 'Fork' 버튼을 클릭하여 해당 프로젝트를 자신의 계정으로 Fork 합니다.
Fork 된 저장소로 이동하고, 변경 사항을 반영할 브랜치를 생성합니다.
변경 사항을 커밋하고 푸시합니다.
GitHub 웹 사이트에서 Fork 된 저장소로 이동한 후, 'New pull request' 버튼을 클릭합니다.
변경 사항을 반영할 원본 저장소와 브랜치를 선택합니다.
Pull Request를 작성하고 제출합니다.
오픈소스에 기여하는 것은 개발 생태계를 더 이롭게 하는 동시에 여러분들의 커리어에 큰 도움이 될 것입니다.
기여 방법은 다양합니다. 버그 보고, 문서 개선, 테스트 작성 등은 막 개발을 시작한 분들도 쉽게 접근할 수 있는 기여 방법입니다. 특히 문서 개선 및 테스트 작성은 기능이나 버그 수정보다 쉽게 접근할 수 있는 기여 방법입니다.
또한, 여러분이 사용하지 않는 패키지에도 기여할 수 있습니다. GitHub에서 제공하는 Good First Issue 레이블을 활용하는 방법이 있습니다. 이러한 이슈들은 초보자들도 쉽게 참여할 수 있는 이슈들입니다. 아래 사이트인 Good First Issue(https://goodfirstissue.dev/)에서는 여러분이 자신이 원하는 언어로 필터링하여 쉽게 컨트리뷰션 할 수 있는 이슈를 찾을 수 있습니다. 첫 번째 기여를 시도해 보세요!