Learn

pull request 워크플로우

Git

브랜치 만들기, push하기, PR 열기, 리뷰받기, 병합하기. 업계 표준 방식.

pull request(PR)는 변경사항을 제안하고, 리뷰받고, 병합하는 업계의 표준 의식이에요. 이 레슨에서는 GitHub에서 본 전체 사이클을 다뤄요.

pull request가 존재하는 이유

공유 프로젝트에서 main에 직접 push하는 건 위험해요. PR은 변경사항을 둘러싼 토론 공간을 만들어요 : 다른 사람들이 diff를 읽고, 댓글을 남기고, 수정을 요청할 수 있어요. 리뷰 없이는 아무것도 main에 들어가지 않아요.

혼자 작업할 때도 PR을 여는 건 좋은 습관이에요 : 병합 전에 자신의 diff를 다시 읽게 되니까요.

1단계 : 브랜치 만들고 push하기

shell
git switch -c fix/readme-typos

수정하고 commit해요 :

shell
git add README.md
git commit -m "README 오타 수정"

브랜치를 GitHub에 push해요 :

shell
git push -u origin fix/readme-typos

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 requests

3단계 : 리뷰

리뷰어들이 Files changed 탭에서 diff를 읽고 줄별로 댓글을 달아요. 피드백에 응하려면 코드를 수정하고, commit하고, 같은 브랜치에 다시 push해요. PR이 자동으로 업데이트돼요.

shell
git add README.md
git commit -m "리뷰 피드백 반영"
git push

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을 업데이트하고 로컬 브랜치를 삭제해요 :

shell
git switch main
git pull
git branch -d fix/readme-typos

다음 단계를 열려면 단계를 체크하세요

코스로 돌아가기