pull request(PR)는 변경사항을 제안하고, 리뷰받고, 병합하는 업계의 표준 의식이에요. 이 레슨에서는 GitHub에서 본 전체 사이클을 다뤄요.
pull request가 존재하는 이유
공유 프로젝트에서 main에 직접 push하는 건 위험해요. PR은 변경사항을 둘러싼 토론 공간을 만들어요 : 다른 사람들이 diff를 읽고, 댓글을 남기고, 수정을 요청할 수 있어요. 리뷰 없이는 아무것도 main에 들어가지 않아요.
혼자 작업할 때도 PR을 여는 건 좋은 습관이에요 : 병합 전에 자신의 diff를 다시 읽게 되니까요.
1단계 : 브랜치 만들고 push하기
수정하고 commit해요 :
브랜치를 GitHub에 push해요 :
2단계 : GitHub에서 PR 열기
push 후에 GitHub이 "Compare & pull request" 배너를 보여줄 때가 많아요. 없으면 Pull requests 탭에서 New pull request를 클릭해요.
선택해요 :
- base : 대상 브랜치, 보통
main. - compare : 내 브랜치
fix/readme-typos.
왜 하는지를 설명하는 제목과 설명을 써요 (무엇을 했는지만이 아니라). 그리고 Create pull request를 클릭해요.
GitHub Docs - Pull requests3단계 : 리뷰
리뷰어들이 Files changed 탭에서 diff를 읽고 줄별로 댓글을 달아요. 피드백에 응하려면 코드를 수정하고, commit하고, 같은 브랜치에 다시 push해요. PR이 자동으로 업데이트돼요.
4단계 : 병합
PR이 승인되면, 여러분 (또는 메인테이너)이 GitHub에서 Merge pull request를 클릭해요. GitHub이 세 가지 모드를 제공해요 :
- Create a merge commit : merge commit과 함께 전체 히스토리를 유지해요. 기본 옵션.
- Squash and merge : PR의 모든 commit을 하나로 합쳐 병합해요. 히스토리가 깔끔해져요.
- Rebase and merge : merge commit 없이
main에 rebase해요. 선형이에요.
병합 후에는 GitHub에서 브랜치를 삭제해요 ("Delete branch" 버튼).
로컬에서는 main을 업데이트하고 로컬 브랜치를 삭제해요 :
