본문 바로가기

Git

[Github] Pull Request & Code Review

안녕하세요 오늘은 github에서 Pull Request를 보내는 방법과 Pull Request를 이용한 코드 리뷰에 대해 알아보겠습니다!.

 

📌 Pull Request(PR) 보내기

PR 생성

변경사항이 반영된 파일을 Github에 푸쉬했을 경우, 내 원격 저장소에는 Pull Request를 보내라는 알림이 뜬다. 안 떴을 경우, 상단 바에서 두번 째 메뉴인 Pull Request를 누르고 초록색인 New pull request를 누릅니다!

 

PR보내기

변경사항이 있어 보내는 브랜치와 해당 프로젝트의 받는 브랜치를 선택한 후, 초록색 pull request버튼을 눌러줍니다.

 

 

Option

Fork한 원격저장소에서 해당 프로젝트 본래의 원격저장소로 PR을 날릴 경우엔 오른쪽 탭에 추가로 적어주는 옵션들이 없어요. 하지만 자신의 원격 저장소에서 dev브랜치를 master브랜치로 PR을 보내어 병합하는 상황같은 경우엔 오른쪽 탭에 여러가지 옵션들이 생깁니다. Reviewers, Assignes, Labels, Projects, Milestone, Linked issues가 있고 Github 문서를 보면서 알아보았습니다.

 

Reviewers

말그대로 코드를 리뷰해줄 사람을 선택하는 옵션이에요. 같은 저장소에서 작업하고 있는 사람들의 아이디가 제안되고, 또한 내가 원하는 팀, 사람들을 지정해서 Reviewers를 설정할 수 있습니다. 지정한 사람의 리뷰가 끝난 후, 그 리뷰사항들을 모두 고친 후, 새로고침버튼을 누르면 re-review를 요청할 수 있습니다.

image

 

Assignees

Assignees clarify who is working on specific issues and pull requests.

Github 문서에 나와있듯이 Assignees를 통해 Pull Request 와 issues의 담담자를 지정할 수 있습니다.

image

 

Labels

Labels on GitHub help you organize and prioritize your work. You can apply labels to issues and pull requests to signify priority, category, or any other information you find useful.

Labels를 통해 해당 Pull Request와 issues의 정보들을 더 명확히 해줄 수 있다. 우선순위, 카테고리 등을 지정할 수 있고, 사용자가 Labels를 만들어 부여할 수도 있어요. 기본적으로 제공하는 Labels는 bug, documentation, duplicate, enhancement, good first issue, help wanted, invalid, question, wontfix가 있습니다.. 

👉 더 자세히 이곳에서 더 알아볼 수 있어요:)

image

 

Projects

이 Projects는 Pull Request와 issues를 특정 프로젝트에 부여하여 자동으로 연동될 수 있게 해줍니다. 특정 프로젝트란 이슈 칸반 보드를 예로 들 수 있는데 이건 나중에 알아보자!! 이슈 칸반 보드는 제대로 활용하면 팀프로젝트에서 무지 유용할 수 있어요.

image

 

Milestone

마일스톤도 Reviewers와 같이 말그대로의 뜻이다. 프로젝트의 Pull Request와 issue들을 그룹화하여 묶어놓을 수 있습니다.

 

Linked issues

특정 issue를 해결하여 PR을 보냈을 경우, 해당 issue에 연결할 수 있는 옵션이다. 무사히 머지가 됐을 경우, 해당 issue는 자동으로 닫히게 됩니다.

image

📌 Code Review

이제 Pull Request를 보내는 방법을 알았어요! 그렇다면 코드 리뷰를 달고 그 코드 리뷰를 답하는 것에 대해 알아보겠습니다.

 

 

Conversation 탭을 통해 나의 PR 내용과 Reviewer가 달아준 코멘트를 간단하게 볼 수 있습니다.

Commits 탭에 들어가면 Commit별로 수정된 사항을 볼 수 있고, Files changed에 들어가면 변경된 모든 파일들을 볼 수 있습니다. (이 탭으로 코드 리뷰를 하는 것이 한 눈에 코드를 볼 수 있어 편한 것 같아요 ㅎㅎ)

Checks 탭에 들어가면, Github Actions에 대해 알아보라고 쓰여 있는데 이건 코드리뷰와 크게 상관있지 않은 내용이므로 나중에 알아보자... 코드리뷰에서 더 나아가 파일의 상태를 추적하는 Extension기능 같아요.

Review 작성하기

1️⃣ 내가 보고자 하는 PR을 들어가 상단에 File Changed  버튼을 클릭합니다. 마우스를 코드 위에 올려보면 +표시가 뜨는데 이를 클릭하면 다음과 같은 리뷰창이 나옵니다.

image

 

2️⃣ 여기서 위 옵션들을 자세히 보면, 더 나은 코드를 제시할 수 있는 기능도 있고, 마크다운 언어와 같이 리뷰를 더 강조할 수 잇게 커스텀 기능도 있습니다.

image

 

3️⃣ 리뷰글을 쓰고 Start a review 버튼을 누릅니다. 이미 리뷰가 시작되었다면 Add review comment 버튼으로 되어 있을 것이에요! 리뷰를 제출하기 전까지 코드마다 작성한 리뷰들은 대기상태가 되고 나에게만 보여집니다.

image

Review한 파일 Viewed로 표시하기

1️⃣ Files changed 탭을 클릭합니다.

2️⃣ Reviewing을 끝낸 파일 오른쪽 상단에 Viewed라는 체크박스를 누릅니다.

Review 제출하기

1️⃣ Files changed  탭을 클릭합니다.

2️⃣ 오른쪽 상단에 Reviews changes 버튼을 누릅니다!

image

 

3️⃣ 작성한 코드리뷰에 대한 내용과 피드백 등을 달고 리뷰의 타입도 선택합니다.

  • Comment: 코드에 대해 리뷰만 하고 바꿀 것이 없을 경우
  • Approve: 피드백에 대해 고쳤을 경우 또는 완벽해서 PR을 승인한다는 경우
  • Request Changes: PR을 병합하기 전에 코드를 고쳐야 하는 경우

image

 

👉 본문: Reviewing proposed changes in a pull request

 

📌 공부 자료