우아한테크코스 프리코스에 참여하다보니 Git 커밋 컨벤션이라는 것을 알게 되었다. 이러한 컨벤션이 존재한다는 것을 미처 알지 못해 update라는 키워드만 줄곧 사용하였다. 현재 팀프로젝트도 진행중이여서 이 기회에 확실히 정해두고 사용하려 한다.
✔️ Commit 메시지 구조
기본 적인 커밋 메시지 구조는 제목, 본문, 꼬리말 세가지 파트로 나누고, 각 파트는 빈 줄을 두어 구분한다.
type : subject
body
footer
✔️ Commit Type
타입은 태그와 제목으로 구성되고, 태그는 영어로 쓰되, 첫 문자는 대문자로 한다.
태그 : 제목의 형태이며, :뒤에만 space가 있음에 유의한다.
- feat : 새로운 기능 추가
- fix : 버그 수정
- docs : 문서 수정
- style : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
- refactor : 코드 리팩토링
- test : 테스트 코드, 리팩토링 테스트 코드 추가
- chore : 빌드 업무 수정, 패키지 매니저 수정
✔️ Subject
- 제목은 최대 50글자가 넘지 않도록 하고 마침표 및 특수기호는 사용하지 않는다.
- 영문으로 표기하는 경우 동사(원형)를 가장 앞에 두고 첫 글자는 대문자로 표기한다.(과거 시제를 사용하지 않는다)
- 제목은 개조식 구문으로 작성한다. -> 완전한 서술형 문장이 아니라, 간결하고 요점적인 서술을 의미한다.
✔️ Body
본문은 다음의 규칙을 지킨다.
- 본문은 한 줄당 72자 내로 작성한다.
- 본문 내용은 양에 구애받지 않고 최대한 상세히 작성한다.
- 본문 내용은 어떻게 변경했는지보다 무엇을 변경했는지 또는 왜 변경했는지를 설명한다.
✔️ footer
꼬릿말은 다음의 규칙을 지킨다.
- 꼬릿말은 optional이고 이슈 트래커 ID를 작성한다.
- 꼬릿말은 "유형: # 이슈 번호" 형식으로 사용한다.
- 여러 개의 이슈 번호를 적을 때는 쉼표(,)로 구분한다.
- 이슈 트래커 유형은 다음 중 하나를 사용한다.
- Fixes: 이슈 수정 중(아직 해결되지 않은 경우)
- Resolves: 이슈를 해결했을 때 사용
- Ref: 참고할 이슈가 있을 때 사용
✔️ Commit 예시
Feat: "회원 가입 기능 구현"
SMS, 이메일 중복확인 API 개발
Resolves: #123
Ref: #456
Related to: #48, #45
✔️ Commit Message Emogji
자세한 부분에 대해서는 'Gitmoji 사용하기'에 자세히 설명되어 있다.
✔️ 나의 커밋 타입
커밋 타입은 아래 5가지를 제일 많이 사용할 것 같다.
docs: ~
feat: 추가/구현
fix: 수정/삭제
test: ~
refactor: ~
아래 블로그를 참고하였습니다.