앞선 포크 실습과정을 통해서 ME의 원본 저장소를 통째로 복사하고, NEWBIE가 새로운 커밋(즐겨찾기 기능 추가)을 생성해 푸시까지 진행하는 절차를 거쳤습니다. 이 과정을 완료했지만, 아직 원본 저장소에는 해당 커밋이 반영되지는 않은 상태입니다. 이제, 이 NEWBIE의 원격 저장소에 반영된 커밋을 원본 저장소에도 반영하도록 하겠습니다.
일단 우리가 배웠던 풀 리퀘스트(pull request)를 진행해야 합니다. 사실 우리가 하려는 작업의 본질은 'NEWBIE'의 브랜치와 'ME'의 브랜치를 합치는 과정과 같다고 생각해도 됩니다.
우선 NEWBIE의 github 페이지로 로그인해서 들어가 보겠습니다. 상단에 보면 "This branch is 1 commit ahead of ME:master"라는 메시지가 출력되어 있습니다. 여기서 [contribute] 메뉴를 클릭하고 [Open pull request]를 실행해 보겠습니다.
이제 우리가 봤던 pull request 화면이 출력됩니다. 여기서 변한 것은, 원격 저장소의 브랜치에서 원본 저장소의 브랜치로 변경되는 것이기 때문에 base와 compare 정보에 추가로 repository에 대한 내용이 출력된다는 점입니다.
- base repository + base 브랜치 : 병합되는 원본 저장소와 브랜치
- head repository + compare 브랜치 : 병합하려고 하는 원격 저장소와 브랜치
위의 base와 compare 내용을 잘 확인하고 설정합니다. 역시 이 경우에도 마찬가지로 해당 영역에 'Able to merge'가 출력되면서, 기본적인 충돌(conflict)체크가 이루어졌습니다. 여기에 커밋 타이틀과 커밋 관련 요청사항을 작성할 수 있도록 되어있습니다.
NEWBIE가 pull request를 생성하고 나면, ME의 메일로도 해당 요청이 생성되었음을 확인할 수 있게 됩니다. 이제, github에 ME의 계정으로 로그인해 해당 요청을 확인해 보겠습니다. 우선 로그인한 다음 원본 저장소의 [Insights] > [Forks]를 클릭해 현재 포크 된 상태를 확인합니다.
그리고 [Pull request] 탭을 클릭해 확인해 보겠습니다. NEWBIE의 풀 리퀘스트 내용을 확인할 수 있네요. 클릭해 상세 내용을 살펴보도록 하겠습니다.
아래와 같이 상세 내용을 확인할 수 있습니다. 여기서 Files changed 탭을 클릭해, 상세 코드 내용을 확인할 수 있고 코멘트를 달며 리뷰를 진행할 수 있게 됩니다.
Files changed 탭에서 [Review Changes]를 클릭하면, 해당 풀 리퀘스트에 대한 리뷰 작업을 완료할 수 있습니다. 'Comment'로 댓글을 달거나 'Approve'를 눌러 바로 병합을 진행합니다. 수정을 요청할 내용이 있다면 [Request changes]를 클릭할 수 있습니다.
이제 코멘트를 달고 [Approve]를 클릭하면, 다음과 같이 병합을 할 수 있는 화면이 표시됩니다. [Merge pull request]를 클릭하고 [Confirm megrge]를 클릭합니다. 참고로 현재 원본 저장소에서의 병합 작업은 ME만 가능합니다.
[Confirm merge]까지 완료하고, ME의 원본 저장소의 코드를 살펴보겠습니다. "favorite.md" 파일이 업데이트 되어 있는 것을 확인할 수 있습니다.
해당 원본 저장소에서의 [Insight] > [Contributors] 메뉴에 들어가면, 해당 저장소에 기여하는 컨트리뷰터들의 리스트도 확인할 수 있습니다.
만약 NEWBIE가, 자신이 컨트리뷰터로 활동하고 있는 프로젝트를 프로필에서 콕 집어 자랑하고 싶다면 [customize your pins] 메뉴를 클릭해 해당 원본 저장소를 나타낼 수 있습니다.
'Project Management > Git & Github' 카테고리의 다른 글
[Chapter 4] 복수의 repository로 협업(2) - rebase 2 (0) | 2023.04.01 |
---|---|
[Chapter 4] 복수의 repository로 협업(2) - rebase 1 (0) | 2023.03.30 |
[Chapter 4] 복수의 repository로 협업(1) - fork 2 (0) | 2023.03.27 |
[Chapter 4] 복수의 repository로 협업(1) - fork 1 (0) | 2023.03.26 |
[Chapter 3] repository 협업(8) - Release (0) | 2023.03.25 |