1. main 브랜치로부터 develop 브랜치를 생성한다. (초기에 한번)
2. Issue를 생성한다.
3. develop branch base의 local - feature branch를 생성한다.
4. Add - Commit - Push - Pull Request 의 과정을 거친다.
5. Pull Request가 작성되면 작성자 이외의 다른 팀원이 Code Review를 한다.
6. Code Review가 완료되면 Pull Request 작성자가 develop branch로 Merge 한다.
7. Merge가 끝난 후에는 해당 Issue를 Close한다.
8. remote - develop branch에 새로운 코드가 Merge 될 때마다 모든 팀원 local - develop pull 받아 최신 상태를 유지한다.
9. main은 모든 작업이 끝난 후 develop에서 Merge 시킨다.
- 자신의 코드가 직관적으로 바로 파악할 수 있다고 생각하지 말 것
- 한 커밋에는 한 가지 문제만 담는다 (기능 단위로 나누기)
- 너무 많은 문제를 한 커밋에 담으면 추적하기 어렵다
🛠️ Commit Message 구조
태그(tag): 제목(subject)
본문(body)
꼬릿말(footer)
✅ 태그 (Tag) - 필수
- 태그는 영어로 쓰되 첫 문자는 대문자로 한다
- "태그: 제목"의 형태이며, : 뒤에만 space가 있음에 유의
예) Feat: ~, Fix: ~, Docs: ~
✅ 제목 (Subject) - 필수
- 제목 끝에 특수문자는 삽입하지 말 것 예) 마침표(.), 느낌표(!), 물음표(?)
- 제목은 영문 기준 50자 이내
- 제목은 개조식 구문으로 작성 (말하고자 하는 내용을 요점 위주로 작성)
- 제목과 본문을 한 줄 띄워 분리하기
✅ 본문 (Body) - 선택
- 본문에는 변경한 내용과 이유를 설명하되, "어떻게" 보다 "무엇을", "왜"를 설명
- 본문 내용은 양에 구애받지 않고 최대한 상세히 작성
- 본문에 여러줄의 메시지를 작성할 땐 "-"로 구분 (한 줄당 72자)
✅ 꼬리말 (Footer) - 선택
1. 꼬리말은 optional이고 이슈 트래커 ID를 작성한다.
2. 꼬리말은 "유형: #이슈 번호" 형식으로 사용
3. 여러 개의 이슈 번호를 적을 때는 쉼표로 구분
4. 이슈 트래커 유형은 다음 중 하나를 사용한다
- Fixes: 이슈 수정중 (아직 해결되지 않은 경우)
- Resolves: 이슈를 해결했을 때 사용
- Ref: 참고할 이슈가 있을 때 사용
- Related to: 해당 커밋에 관련된 이슈번호 (아직 해결되지 않은 경우)
ex) Fixes: #53 Related to: #17, #24
📝 Commit Message 템플릿
################
# <태그>: <제목> 의 형식으로 제목을 아래 공백줄에 작성
# 제목은 50자 이내 / 변경사항이 "무엇"인지 명확히 작성 / 끝에 마침표 금지
# 예) ✨ Feat: 로그인 기능 추가
# 바로 아래 공백은 지우지 마세요 (제목과 본문의 분리를 위함)
################
# 본문(구체적인 내용)을 아랫줄에 작성
# 여러 줄의 메시지를 작성할 땐 "-"로 구분 (한 줄은 72자 이내)
################
# 꼬릿말(footer)을 아랫줄에 작성 (현재 커밋과 관련된 이슈 번호 추가 등)
# 예) Fixes: #53 Related to: #17, #24