Git flow 전략(이슈 기반 브랜치 전략)
1. Github에서 이슈 등록하기
- repository의 [Issues] 탭에 [New issue]를 누르고 미리 등록한 issue template 중에서 [Get started]를 클릭합니다.
- 이슈 제목과 내용들을 작성하고 오른쪽 탭에서 아래 목록의 설정을 진행합니다.
- Assigness : 본인 등록
- Labels: 이슈 목적에 맞는 라벨을 등록
- Projects: 미리 등록한 Kanban Board 등록
- 작성해둔 이슈 중에서 작업하는 이슈를 Github [Projects] 탭에서 Kanban board의 To do에서 In progress로 현재 상황을 표시하기(Kanban의 Issue와 PR들은 close시 자동으로 Done으로 이동되도록 설정했습니다.)
2. vscode에서 이슈 기반의 브랜치 생성
- 기존의 원격 레포지토리 최신화를 위해 develop 브랜치에서 Pull 작업 실행
- 이슈 기반 브랜치 생성
- git checkout -b feature/#[이슈 번호] develop
3. 개발 진행
- 미리 작성한 이슈 기반의 개발
- 아래의 커밋 컨벤션을 준수하여 커밋 작성
- Push 작업 실행
4. Github에서 PR 등록하기
- [Pull requests] 탭에서 [New pull request] 클릭
- base: develop, compare: [2단계에서 생성한 브랜치] 설정 후 [Create pull request] 클릭
- 미리 지정해둔 PR 양식을 토대로 PR 작성 후 오른쪽 탭에서 아래 내용들 설정 후 작성
- PR 제목: [이슈명] PR으로 지정합니다. ex) 로그인 기능 구현 PR
- Reviewers: 현재 1명 밖에 지정이 되지 않으므로 설정하지 않습니다.
- Assigness: 본인 등록
- Labels: PR에 해당하는 이슈와 동일하게 등록
- Projects: 기존에 설정한 Kanban board 등록
- Linked issues: 최초 PR 작성시에는 이슈를 설정 탭에서 연동할 수 없으므로 PR 작성 후 반드시 연결되는 이슈를 반드시 설정해주셔야 합니다.
- 생성된 PR의 오른쪽 탭에서 [Linked issues]를 통해 PR에 해당하는 이슈를 연결
5. 코드 리뷰 및 Merge
- 4단계에서 작성한 PR을 토대로 팀원 전체 코드 리뷰 진행
- 코드 리뷰를 통한 코드 개선
- 코드 리뷰 및 코드 개선 후 [Rebase and merge]로 수정 후 PR의 Merge 진행
- Merge가 완료된 후 기능 브랜치 삭제를 위해 [Delete Branch] 클릭
- 해당 PR과 연결된 이슈가 자동 Closed 되었는지 확인 후 Kanban board의 Card 역시 자동 이동 되었는지 확인
- 로컬 환경의 개발 IDE에서 develop 브랜치로 이동 후 Pull 작업 진행
- 제대로 최신화가 이루어진지 확인 후 이슈에 해당되는 개발을 진행한 feature 브랜치 삭제
- 현재로써 여기까지 과정이 제대로 이루어졌다면 git branch 입력 시 main, develop 브랜치만 남아야 합니다.
- 위 과정이 이루어진 후에는 1개의 이슈관리가 종료된것이며 새로운 이슈에 대해서는 다시 1번 단계로 진행이 이루어져야 합니다.
이슈 컨벤션
이슈의 크기에 따른 최소 단위를 제목으로 지정
ex) Text 컴포넌트 구현
ex) 로그인 기능 구현
ex) 로그인 기능 리펙토링
커밋 컨벤션
[태그 이름] [#이슈 번호] : [커밋 내용]
ex) feat #1 : Text 컴포넌트 구현
태그 목록
- feat : 새로운 기능을 추가할 경우
- fix : 버그를 고친 경우
- style : 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우
- refactor : 코드 리팩토링
- chore : 빌드 태스트 업데이트, 패키지 매니저를 설정하는 경우
- rename : 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우t
- remove : 파일을 삭제하는 작업만 수행한 경우