본문 바로가기

Project Management/Git & Github

[Chapter 4] 복수의 repository로 협업(1) - fork 3 : pull request

github logo image

 

 

 

앞선 포크 실습과정을 통해서 ME의 원본 저장소를 통째로 복사하고, NEWBIE가 새로운 커밋(즐겨찾기 기능 추가)을 생성해 푸시까지 진행하는 절차를 거쳤습니다. 이 과정을 완료했지만, 아직 원본 저장소에는 해당 커밋이 반영되지는 않은 상태입니다. 이제, 이 NEWBIE의 원격 저장소에 반영된 커밋을 원본 저장소에도 반영하도록 하겠습니다. 

 

일단 우리가 배웠던 풀 리퀘스트(pull request)를 진행해야 합니다. 사실 우리가 하려는 작업의 본질은 'NEWBIE'의 브랜치와 'ME'의 브랜치를 합치는 과정과 같다고 생각해도 됩니다. 

 

 

 


 

우선 NEWBIE의 github 페이지로 로그인해서 들어가 보겠습니다. 상단에 보면 "This branch is 1 commit ahead of ME:master"라는 메시지가 출력되어 있습니다. 여기서 [contribute] 메뉴를 클릭하고 [Open pull request]를 실행해 보겠습니다. 

 

포크된 원격 저장소에서의 커밋을 pull request로 합치고자 합니다

 

 

 

 

이제 우리가 봤던 pull request 화면이 출력됩니다. 여기서 변한 것은, 원격 저장소의 브랜치에서 원본 저장소의 브랜치로 변경되는 것이기 때문에 base와 compare 정보에 추가로 repository에 대한 내용이 출력된다는 점입니다. 

 

- base repository + base 브랜치 : 병합되는 원본 저장소와 브랜치

- head repository + compare 브랜치 : 병합하려고 하는 원격 저장소와 브랜치

 

위의 base와 compare 내용을 잘 확인하고 설정합니다. 역시 이 경우에도 마찬가지로 해당 영역에 'Able to merge'가 출력되면서, 기본적인 충돌(conflict)체크가 이루어졌습니다. 여기에 커밋 타이틀과 커밋 관련 요청사항을 작성할 수 있도록 되어있습니다.

 

pull request 내용을 작성합니다

 

 

 


 

 

NEWBIE가 pull request를 생성하고 나면, ME의 메일로도 해당 요청이 생성되었음을 확인할 수 있게 됩니다. 이제, github에 ME의 계정으로 로그인해 해당 요청을 확인해 보겠습니다. 우선 로그인한 다음 원본 저장소의 [Insights] > [Forks]를 클릭해 현재 포크 된 상태를 확인합니다. 

 

NEWBIE가 포크한 이력을 확인할 수 있습니다

 

 

그리고 [Pull request] 탭을 클릭해 확인해 보겠습니다. NEWBIE의 풀 리퀘스트 내용을 확인할 수 있네요. 클릭해 상세 내용을 살펴보도록 하겠습니다. 

 

ME가 NEWBIE가 보낸 풀 리퀘스트를 확인합니다

 

 

 

 

아래와 같이 상세 내용을 확인할 수 있습니다. 여기서 Files changed 탭을 클릭해, 상세 코드 내용을 확인할 수 있고 코멘트를 달며 리뷰를 진행할 수 있게 됩니다. 

 

 

 

 

Files changed 탭에서 [Review Changes]를 클릭하면, 해당 풀 리퀘스트에 대한 리뷰 작업을 완료할 수 있습니다. 'Comment'로 댓글을 달거나 'Approve'를 눌러 바로 병합을 진행합니다. 수정을 요청할 내용이 있다면 [Request changes]를 클릭할 수 있습니다. 

 

 

 

 

이제 코멘트를 달고 [Approve]를 클릭하면, 다음과 같이 병합을 할 수 있는 화면이 표시됩니다. [Merge pull request]를 클릭하고 [Confirm megrge]를 클릭합니다. 참고로 현재 원본 저장소에서의 병합 작업은 ME만 가능합니다. 

 

Approve한 다음, Merge pull request를 진행합니다

 

 

 

[Confirm merge]까지 완료하고, ME의 원본 저장소의 코드를 살펴보겠습니다. "favorite.md" 파일이 업데이트 되어 있는 것을 확인할 수 있습니다. 

 

NEWBIE가 작업한 커밋이 반영되었습니다

 

 

 

 

해당 원본 저장소에서의 [Insight] > [Contributors] 메뉴에 들어가면, 해당 저장소에 기여하는 컨트리뷰터들의 리스트도 확인할 수 있습니다. 

 

ME와 NEWBIE를 모두 확인할 수 있습니다

 

 

 

 

만약 NEWBIE가, 자신이 컨트리뷰터로 활동하고 있는 프로젝트를 프로필에서 콕 집어 자랑하고 싶다면 [customize your pins] 메뉴를 클릭해 해당 원본 저장소를 나타낼 수 있습니다.