GitHub Repository에는 수많은 프로젝트가 있습니다. 그중 누구나 쉽게 참여해서 프로젝트에 기여를 할 수 있습니다.
대표적으로 유명한 오픈소스 프로젝트는 Linux, Netty, armeria 등 있습니다.
간단하지만 누구나 쉽게 참여 할 수 있는 모던 자바스크립트 튜토리얼 프로젝트에 참여해 보았습니다.
오픈 소스 프로젝트에 참여 하기 전 원격 저장소(Remote Repository
)에서 프로젝트를 복제를 해야 합니다.
프로젝트 복제를 git clone
이 아닌 Fork를 먼저 해야 하는 이유는 다음과 같습니다.
Fork는 오픈 소스 프로젝트에서 또는 사용자가 업스트림 리포지토리에 대한 쓰기 권한이 없는 경우와 같이 아이디어나 변경사항을 업스트림 리포지토리에 다시 제안하기 전에 반복적으로 테스트하는 데 자주 사용됩니다. -- GitHub Docs --
오픈 소스 프로젝트는 누구나 참여는 가능하지만 수정, 변경에 대한 권한은 가지고 있지 않습니다. 그렇기에 버그 수정과 변경 사항을 원본 제작자에게 제안을 주기 위해서 Fork로 프로젝트를 복제하고 원본 제작자에게 제안을 보낼 수 있습니다.
오픈 소스 프로젝트에 Fork 버튼을 클릭합니다
오픈 소스 프로젝트 원격 저장소가 내 계정으로 복제가 됩니다.
내 계정에 복제된 오픈 소스 프로젝트를 로컬 저장소로 복제합니다.
https://github.com/내계정/ko.javascript.info.git
로컬 저장소에 프로젝트 폴더를 저장합니다.
git remote -v
origin https://github.com/jihwooon/ko.javascript.info.git (fetch)
origin https://github.com/jihwooon/ko.javascript.info.git (push)
git remote add upstream https://github.com/javascript-tutorial/ko.javascript.info.git
origin https://github.com/jihwooon/ko.javascript.info.git (fetch)
origin https://github.com/jihwooon/ko.javascript.info.git (push)
upstream https://github.com/javascript-tutorial/ko.javascript.info.git (fetch)
upstream https://github.com/javascript-tutorial/ko.javascript.info.git (push)
프로젝트에 버그 및 수정사항이 발견되어 원작자에게 Pull Request를 보냅니다.
staging area
)에 추가합니다.git add . # 온점(.)은 전체를 의미합니다
git commit
git fetch upstream master
git rebase upstream/master
git push origin <<브랜치명>>
오픈 소스 프로젝트 Pull request
을 확인합니다.
원작자가 Pull request를 확인을 하고 리뷰를 남깁니다.
코드 리뷰가 완료가 되고 승인이 되면 Merge를 합니다.
오픈 소스 프로젝트에 기여하는 방법을 정리했습니다. 프로젝트마다 브랜치 작명, PR 방법, Issue 관리 등 방법이 다양합니다.
프로젝트에 따라 방법을 따라가면 누구나 쉽게 프로젝트에 기여할 수 있습니다.
모던 자바스크립트 튜토리얼 프로젝트 번역에 기여한 내용을 확인 할 수 있습니다.