[Tip] github 사용법 - Fork&PR


지난 포스팅

1. 마크다운 문법

2. github 가입 및 다운로드

3. git bash shell 명령어

4. git 사용법 - 코드 관리(SCM) & 버전 관리(VCS)

5. github 사용법 - push&pull

6. github 사용법 - Branch&PR 1편

7. github 사용법 - Branch&PR 2편


지난 포스팅에서는 github의 협업 시나리오 중 하나인 Branch & PR 모델에 대해 알아봤습니다. 이번 포스팅에서는 오픈 소스 프로젝트에서의 협업 모델인 Fork & PR 모델에 대해 알아보겠습니다.

지난 포스팅 말미에 짧게 언급했듯 Branch & PR 모델은 업계에서 표준 협업 방식으로 채택하고 있는 아주 효율적인 협업 모델입니다. 하지만 오픈 소스의 위력이 대두되는 현 시점에서 일부 Collaborator 이외에는 프로젝트에 기여할 수 없는 모델이라는 한계점을 가지고 있습니다. 이러한 문제점을 보완하기 위한 협업 모델이 Fork & PR 모델입니다. Fork & PR 방식을 이용한다면 우리가 잘 알고 있는 “Pandas” 같은 모듈에도 직접 기여를 할 수 있습니다. Collaborator가 아닌 외부의 기여자를 Contributor라고 부릅니다.

이번에도 계정이 두 개가 필요합니다. 지난 번처럼 한 계정으로는 원격 저장소를 생성해주세요. 프로젝트에 팀원으로 속해 있는 Collaborator 역할을 맡을 것입니다. 다른 한 계정은 프로젝트에 소속되어 있지 않지만 오픈 소스 프로젝트에 기여하고 싶은 Contributor의 역할을 맡으시면 됩니다. 이번에도 3행시를 짓는 오픈소스 프로젝트를 진행해봅시다. 지난 포스팅을 참고하여 똑같이 만들어 주세요.

image-20200926194021939


이제 Contributor가 되어 봅시다. 로그인 해서 좌측 상단에 있는 검색창에 원격 저장소를 검색해주세요. 저의 경우는 lhmlhm1111/collabo2 라고 검색하면 들어갈 수 있겠네요.

image-20200926194623299


Collaborator로 지정되어있지 않기 때문에 해당 원격 저장소에 직접 push/pull을 할 권한이 없습니다. 대신 원격 저장소를 포크로 푹 찍듯이 자신의 계정으로 복사해 가져올 수 있습니다. 우측 상단에 Fork 버튼을 클릭합니다.

image-20200926210319044


잠깐의 로딩을 기다리면 자신의 계정으로 원격 저장소가 생성된 것을 알 수 있습니다. 자세히 보시면 forked from lhmlhm1111/collabo2라고 적혀있는 것을 확인할 수 있습니다. 해당 저장소를 pull하여 자신의 로컬저장소로 가져와 수정한 후 다시 push 해줍니다. 이 과정은 생략하겠습니다.

image-20200926210512881

(혼자 하시는 분들의 경우 git bash에 등록되어 있는 계정이 달라 Push가 안되는 현상이 발생합니다. 실제 상황에서는 한 로컬에서 계정을 번갈아 Fork & PR을 하는 경우는 거의 없지만 그래도 연습 해보고 싶은 분들은 여기를 참고하셔서 git bash에 등록된 계정을 바꿔주시고 실행해주세요.)


수정이 잘 됐다면 좌측 상단의 Pull requests를 누릅니다.

image-20200926214427799


우측 상단의 New pull request를 눌러줍니다.

image-20200926215234502


다시 한 번 우측 상단에 뜨는 Create Pull request를 눌러줍니다

image-20200926215430888


제목과 설명을 작성한 후 Creat pull request를 클릭하면 PR이 완료됩니다.

image-20200926215806092


이제 팀장의 계정으로 가봅니다. Pull requests가 하나 들어와 있는 것을 확인할 수 있습니다. 클릭해봅시다.

image-20200926220133574


지난 포스팅에서 봤던 것과 똑같은 화면이 나옵니다. 마음에 들면 Merge pull request를 누르시고 마음에 들지 않으면 Close pull request를 선택해주세요.

image-20200926220739013


잘 된 것을 확인할 수 있습니다.

image-20200926220930293


이번 포스팅을 끝으로 github 사용법에 대한 포스팅을 마치도록 하겠습니다. 여기까지만 잘 숙달하신다면 협업 상황에서 별다른 무리 없이 github를 사용하실 수 있을 것입니다.

다음 포스팅은 보너스로 github 블로그를 구축하는 방법에 대해서 다뤄보도록 하겠습니다. 읽어주셔서 감사합니다~


다음 포스팅

github 블로그를 만들자!