브랜치를 만들어서 개발을 진행하면서 개발 완료가 되었거나 중간 저장을 하고 싶다면 어떻게 해야 할까요? 내 저장소가 아니라 fork 한 프로젝트의 원본 저장소에 반영을 해야겠죠?

즉, 팀장이 프로젝트를 위해 만들어 놓은 저장소를 여러분들께서 fork 하셨습니다. 여러분들께서는 변경의 권한이 없으므로 원본에 반영하고 싶다면 원본 저장소의 계정으로 요청을 해야 합니다. 이 작업을 Pull request라 합니다. 결재를 상사에게 올리는 것과 동일한 원리라 생각하면 됩니다.

변경된 작업이 로컬 저장소에서 여러분들의 github 저장소에 push된 내용이 있다면 아래의 화면과 같이 노란색으로 메시지가 출력됩니다. 노란색 메시지에 있는 [Compare & pull request] 버튼이 원본 github로 반영 요청을 하는 기능입니다.

이제 원본 저장소 쪽으로 요청하기 위해 [Compare & pull request] 버튼을 선택합니다.

 

 

Open a pull request 화면에서 메시지나 주의사항을 입력합니다. 그런데 자세히 보시면 base repository는 master 브랜치로 설정되어 있고 내 github의 작업 브랜치는 park 브랜치로 설정이 되어 있습니다. 즉, 팀장이 인증을 하면 내가 작업한 park 브랜치의 내용이 원본 저장소의 master 브랜치로 바로 병합된다는 의미입니다. 

 

혹시 바로 master에 병합되지 않고 작업 브랜치를 원본 저장소에도 만들고 작업하고 싶다면 pull request 요청하기 전에 원본 저장소에 여러분들의 작업 브랜치를 직접 만들어놔야 합니다.

팀장이 만들어 놓은 원본 저장소로 가서 팀원들의 모든 브랜치를 작성합니다.

팀장의 원본 저장소로 이동합니다.

작업 repository로 이동한 후 [Branch:master]의 ▼버튼을 누릅니다. 작성하고 싶은 브랜치명을 입력하고 [Create branch: park] 메뉴를 선택합니다.

 

다음과 같이 생성한 브랜치가 추가된 것을 확인할 수 있습니다.

 

 

master로 직접 merge가 되도록 설정해도 좋고 지금처럼 원본 저장소에도 브랜치를 만들고 작업해도 좋습니다. 원본 저장소에 브랜치를 만들면 팀장의 프로젝트에서 merge할때 브랜치를 각각 fetch해야 하지만요..

우리는 원본 저장소에 각 브랜치를 만들고 작업할 것입니다.

다시 개인 작업을 pull request하기 위해 개별 github로 접속한 후 pull request를 선택합니다.

 

화면을 보면 park 브랜치에서 원본 저장소의 원격지 park 브랜치로 요청을 하고 있는 것을 볼 수 있습니다. 기본 설정은 원본 저장소의 master 브랜치에 병합되는 것입니다. 만약 한 단계 더 작업하겠다면 원본 저장소에 브랜치를 만들고 작업해야 합니다.

 

[Create pull request] 버튼을 누릅니다.

 

[프로젝트 메인 화면에 [Compare & pull request] 버튼이 안보이는 경우]

프로젝트 메인 화면에 노란색 메시지와 함께 [Compare & pull request] 버튼이 보이지 않는다면 메인 화면에서 [Pull requests] 탭을 선택합니다.

[New pull request] 버튼을 선택합니다.

 

 

브랜치 선택하는 메뉴에서 base repository에서도 park브랜치를 선택하고 head repository에서도 park브랜치를 선택합니다. commit하고 아직 pull request하지 않은 소스코드 화면으로 전환됩니다. 이 화면에서 [Create pull request] 버튼을 누릅니다.

 

Open a pull request화면으로 전환되며 공지사항을 입력하고 [Create pull request] 버튼을 누릅니다.

 

pull request가 완료됐습니다.

 

 

+ Recent posts