팀 프로젝트를 진행하다 보면 PR (Pull Requests)는 필수적으로 사용하게 된다. 그리고 PR은 코드 리뷰어를 위해 최소한의 단위로 만들게 되는데, 이렇게 되면 하나의 전체적인 기능을 위해 여러 가지 PR이 생기게 된다.
(ex. 회원가입에 필요한 기능: 이메일 중복확인 API, 인증 이메일 전송 API, 인증번호 확인 API, 닉네임 중복확인 API ... 수많은 기능이 필요하다 )
문제는 개발을 진행하다보면 PR들이 섞이면서 이 PR이 어떤 도메인, 어떤 기능을 위한 PR인지 한눈에 알아보기가 힘들어진다
따라서 오늘은 이런 문제를 해결하기 위해 하나의 전체적인 기능을 Issue로 등록하고, 거기에 작은 기능의 PR들을 연결시켜 서로 연관된 PR을 모아서 관리할 수 있도록 해보겠다.
Issue와 PR 연동하기
1. Issue 생성
먼저 내가 구현할 기능을 Issue로 생성한다. 생성할 때, 이 기능에 필요한 작은 PR 단위를 Task list로 만들어서 등록해 준다.
2. Task에 해당하는 코드 수정/생성 후 commit
이후 필요한 기능을 생성하거나 수정한 후 commit 하는데, 이때 commit에는 [#IssueNumber] 를 기재한다.
이후 commit이 remote에 올라오게 된다면(push) issue에는 commit에서 언급되었다는 기록이 남게 된다
3. PR 생성
이제 remote에서 Pull Requets를 만들자
보는 것처럼 'Reference'를 클릭하거나 '#' 을 입력하면 다른 pr이나 issue를 연결할 수 있다.
이때 'Development'나 'close, closes, closed, fix, fixes, fixed, resolve, resolves, resolved' 키워드를 사용하여 issue를 연결하면 PR이 merge 되었을 때, 자동으로 연결된 issue가 close 되게끔 설정할 수 있다.
하지만 우리는 issue 하나에 여러 PR을 다룰 것이므로, 수동으로 관리하기 위해 키워드를 따로 사용하지 않고 '#'으로 issue만 연결시켜 주겠다.
4. Issue에서 완료된 Task 수동으로 체크
이제 PR을 merge 한 이후, Issue로 이동해서 수동으로 task를 체크해 주자
또한 issue 로그에 PR이 merge 되었다는 것을 볼 수 있다
이후 모든 task를 완료했다면 issue를 수동으로 close 해주면 된다~!! 끗!
Reference
- [Git]Issue 생성 및 Pull Request 와 연동: https://minny27.tistory.com/50
- [github docs] pr을 issue에 연결: https://docs.github.com/ko/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue