Skip to content

OpeningAndReviewingPullRequests

Youngbin Han edited this page Jul 18, 2019 · 4 revisions

Pull Request 열기/리뷰하기

별도의 브랜치에서 코드 수정 작업을 다 했다면? 이제 병합을 할 차례입니다. 그런데 임의로 그냥 병합하면 안 됩니다. 본인이 발견하지 못한 버그나 오탈자가 있을수도 있고, 병합 도중 충돌이 일어 날 수도 있습니다. 작업물에 실수가 포함되어 있을 수도 있죠.

그래서 그냥 병합하지 않고, GitHub의 Pull Request 기능을 이용합니다.

Pull Request 작성하기

Pull Requests 탭에서 New pull request 를 눌러 작성을 시작합니다.

브랜치 설정

  • base: 본인이 작업한 브랜치를 어느 브랜치에 병합할 지 선택합니다.
    • feature 브랜치에서 작업한 경우, develop 로 선택
    • hotfix 브랜치에서 작업 했거나, develop 에 올라온 것을 배포하려면, master 로 선택
  • compare: 본인이 작업한 브랜치를 선택합니다.

브랜치 설정을 하면, Pull Request 에 포함될 커밋과 각 커밋별 변경사항이 아래에 모두 표시됩니다. 포함될 커밋 목록을 확인했다면, Create pull request 를 클릭하여 작성을 시작합니다.

  • 제목
    • Pull request 제목을 작성합니다.
    • 제목이 다루는 주제에 해당하는 커밋만 Pull Request 에 포함되어야 합니다.
    • 하나의 Pull Request 에서 하나의 주제만 다루도록 합니다.
  • 내용
    • Pull Request 에 포함된 작업 내용을 자세히 설명하세요.
    • 이슈를 참조하면, 마찬가지로 서로 참조가 되어 추후 관련 있는 이슈까지 파악하기 좋습니다. (예: #42)
  • Assignees
    • Pull Request 에 포함될 커밋을 만든 사람으로 지정합니다.
  • Reviewers
    • Pull Request 를 리뷰할 사람을 선택합니다. 본인이 아닌 최소 1명 이상의 리뷰어를 선택하세요.
    • 프로젝트에 실질적으로 활발하게 커밋하는 사람으로 선택하세요.

Pull Request 리뷰하기

리뷰어로 지정 되었다면, Pull Request 를 승인하고 병합하기 전, 문제가 있지는 않은지 꼼꼼히 검토합니다. 아래와 같은 사항을 확인하고, 하나라도 만족하지 않는다면, 수정을 요청하거나 반려 처리 합니다.

  • 하나의 주제만을 다루고 있고, 해당 주제에 해당되는 커밋만 포함되어 있는지 확인합니다.
  • 작업 내용에 대한 설명이 잘 되어 있는지 확인합니다. 또한 커밋에서의 변경사항과 일치 하는지도 봅니다.
  • 각 커밋의 커밋 메시지가 정해진 형식을 잘 준수하는지 확인합니다. 또한 커밋의 변경 내용을 잘 설명하는지도 확인합니다.
  • 해당 코드로 빌드가 잘 되는지, 실행이 정상적으로 잘 되는지 확인합니다.
  • 새로운 라이브러리/프레임워크/개발 도구 도입이 포함된 경우, 라이선스 등으로 인한 법적인 문제가 없는지 확인합니다.
  • 정해진 코딩 스타일을 잘 준수하는지 확인합니다.
    • SKHU's 모바일 앱의 경우, ESLint 를 통해 강제하므로, ESLint 로 검사하여 확인 가능합니다.
  • 불필요한 코드가 있는지도 확인합니다. (예: 구현이 완료되지 않아 부분적으로만 작동하는 코드, 작동은 하지만 호출/사용되지 않는 코드)

리뷰를 제출하려면, Files changes 탭에서 Review changes 를 클릭하여 리뷰를 작성합니다.

  • Comment: 단순히 의견을 남길 경우 선택합니다.
  • Approve: Pull Request 를 승인하려는 경우 선택합니다.
  • Request changes: 추가적인 수정을 요청합니다.

또한, 하단에 나오는 변경사항 비교 화면에서 각 라인에 마우스를 올리면 좌측에 + 버튼이 나오는데, 이를 클릭하여 특정한 라인에 의견을 남길 수 있습니다.

커밋 추가로 제출하기

리뷰어가 Pull Request 에 대해 추가적인 수정을 요청했다면, 병합 될 브랜치에서 추가로 작업하여 올리면 자동으로 Pull Request 에 반영됩니다. 예를 들어 feature/login 브랜치를 develop 브랜치에 병합하는 Pull Request 를 올렸는데, 추가 수정 요청이 들어왔다면, feature/login 브랜치에서 작업을 추가로 한 후 커밋하여 추가로 올리면 됩니다.

병합하기/반려하기

Pull Request 를 승인 했다면, 병합을 할 차례입니다. 병합 시, 3가지 선택지가 있습니다.

  • Merge pull request: 일반적인 병합 방법입니다. 별도의 병합 커밋이 생성되며, 이를 통해 Pull Request 에 포함된 커밋이 추가됩니다.
  • Squash and merge: Pull Request 에 포함된 커밋이 모두 하나의 단일 커밋으로 합쳐져서 원래의 브랜치에 추가됩니다.
  • Rebase and merge: Pull Request 에 포함된 커밋이 각각 개별적으로 원래의 브랜치에 추가됩니다.

자세한 사항은 이 문서를 참고하세요.

Pull Request 를 반려하려면, Close pull request를 누릅니다. 이 경우 Pull Request 를 제출했던 사람은 새로운 Pull Request 를 열어야 합니다.