주제 3
Pull Request
Pull Request는 branch 작업을 merge하기 전에 GitHub에서 검토하는 페이지입니다.
완료할 작업
Push된 task branch가 GitHub Pull Request에서 검토되고 main에 merge할 준비를 마칩니다.
시작 전 확인
- Task branch를 commit하고 GitHub에 push했습니다.
- Base branch와 요청할 reviewer를 정했습니다.
검증 상태
- 상태
- 재검증 필요
- 환경
- GitHub web interface이며 screenshot은 desktop browser 경로입니다.
- 검증 대상
- Pull Request 생성, review, merge와 local main 갱신.
- 마지막 검증
- 현재 GitHub UI walkthrough 대기 중.
- 운영체제 지원
- Browser workflow는 운영체제와 무관하며 GitHub control 위치는 바뀔 수 있습니다.
Pull Request의 의미
Pull Request는 보통 PR이라고 줄여 부르며, 별도의 Git 명령어가 아닙니다. GitHub가 Git의 branch, commit, merge 기능 위에 만든 협업 workflow입니다.
PR은 GitHub에서 한 branch와 다른 branch를 비교해달라고 요청하는 과정입니다. 보통 작업 branch가 compare branch이고, 작업을 받을 main이 base branch입니다.
다른 사람이 작업을 확인해야 하거나, 변경 사항이 크거나, merge 전에 논의 기록을 남기고 싶다면 Pull Request를 사용하세요.
branch를 GitHub에 push하기
Pull Request를 열기 전에는 branch가 GitHub에 올라가 있어야 합니다.
git push -u origin draft-section
-u 옵션은 local branch와 GitHub의 branch를 연결합니다. 그 다음부터는 같은 branch에서 보통 git push만 입력하면 됩니다.
Pull Request 열기
Branch를 push한 뒤 GitHub에 Compare & pull request 버튼이 나타날 수 있습니다. 이 버튼을 클릭해 PR을 시작합니다.
Branch 방향을 주의해서 확인하세요. base branch는 변경 사항을 받을 branch이며 보통 main입니다. compare branch는 작업이 들어 있는 branch입니다.
짧은 제목과 설명을 작성합니다. 제목에는 작업 이름을 적고, 설명에는 무엇이 바뀌었는지 또는 reviewer가 무엇을 확인해야 하는지 적습니다.
Pull Request 검토하기
Pull Request가 만들어지면 GitHub는 discussion, commit, check, merge 상태를 한 곳에 모아 보여줍니다.
Changed files 화면에서 정확한 변경 차이를 확인한 뒤 merge합니다. Reviewer는 comment를 남기거나, PR을 approve하거나, 수정을 요청할 수 있습니다.
수정 요청을 받았다면 같은 branch로 돌아가 파일을 수정하고, commit한 뒤 다시 push합니다.
git add .
git commit -m "Address review comments"
git push
같은 branch에 새 commit을 push하면 Pull Request는 자동으로 업데이트됩니다.
Pull Request를 merge할 준비하기
Merge하기 전에 요청된 수정 사항을 반영했는지, 필요한 reviewer가 승인했는지, 자동 check가 통과했는지 확인합니다. GitHub가 Pull Request를 merge할 수 있다고 표시해야 합니다.
이 시점에서는 Pull Request를 열린 상태로 둡니다. 다음 핵심 문서에서 승인된 PR을 merge하고 local main을 업데이트합니다.
Pull Request를 단순히 push하는 다른 방법처럼 다루지 마세요. PR의 핵심은 review입니다. Branch 방향을 확인하고, 파일 차이를 읽고, 변경 사항을 논의한 뒤, 작업이 main에 들어갈 준비가 되었는지 판단하는 것이 목적입니다.
자주 발생하는 문제
- Base branch를 잘못 선택하면 Pull Request가 제안하는 merge 대상이 달라집니다.
- Review 후 새 commit을 추가하면 merge 전에 다시 review가 필요할 수 있습니다.
완료 확인
해결되지 않은 review 요청과 실패한 check가 없고 GitHub가 Pull Request를 merge할 수 있다고 표시합니다.