열렬히.뛰기

이슈와 PR 사용하기

소프트스킬 > 이슈와 PR 사용하기

협업의 어려움

  • 팀원이 5명이 있다고 하자.
  • 팀원1, 2, 3은 백엔드, 팀원4, 5, 6는 프론트엔드를 맡는다고 하자.
  • 각각 따로 브랜치를 파서 기능이 추가될때마다 합쳐야 할까?
    • 합칠 때마다 에러가 생길 수도 있고, 잘못 합쳤다가 싸울 수도 있다.
    • 질문이 생기면 어떻게 하지?

차라리 다음과 같은 해결방안은 어떨까?

javascript
1. 기능을 추가할 임시 브랜치를 만든다.
2. 멤버1이 임시 브랜치에 내용을 작성한다.
3. 나머지 멤버에게 허락을 받는다.
4. 이후 main 브랜치에 합쳐진다.
5. 임시 브랜치는 다 올린 후 지워진다.

깃허브에서 이를 지원하는데, 이것을 issue와 pull request라고 한다.

issue

게시판

깃허브 리포지토리 → 상단 issue 클릭

이슈를 만들고, 옆의 버튼을 눌러서 브랜치를 만든다.

임시 브랜치에 코드를 작성한다.

issue에 대한 설명을 깃허브에서 설정이 가능하다.

이는 꼭 지켜주는 것이 필요하다. (팀원에 대한 예의라고 할 수 있다.)

Pull Request

이슈를 만들면, 팀원의 평가를 받는다.

평가를 통과하지 못했다면 코드를 올릴 수 없게 설정할 수 있다.

  • (물론, 강제로 올릴 수 있게도 설정은 할 수 있다.)
  • 이 경우 다음과 같이 조치할 수 있다.
    1. Github 사이트에서 PR close
    2. 임시 브랜치에서 코드 재작성 후 pull
    3. Github 사이트에서 PR reopen 하고 다시 평가를 받으면 된다.

모든 멤버에게서 평가를 통과하면 main 브랜치에 내용을 합칠 수 있다.

  • 해당 이슈를 닫고 싶으면 닫으면 된다.
  • 이슈를 닫으면 그 이슈에 딸린 임시 브랜치는 알아서 삭제되게 된다.