사용 이유
- Commit 메시지가 누적될수록 가독성이 떨어진다
- 여러 사람과 협업할 때, 각자의 커밋 메시지의 스타일이 다르다면 그 정도가 더욱 심해진다
→ 따라서 협업하는 사람들간의 메시지 스타일을 정형화하여 협업의 능률 증진
메시지 구조
커밋 메시지는 크게 제목(+타입), 본문, 꼬리말로 구분되며, 각 파트는 빈 칸으로 띄워 구분한다
- 제목은 해당 커밋이 어떤 종류의 커밋인지 명시할 타입을 포함
- 제목은 변경사항에 대한 짧은 요악을 나타냄
- 본문은 어떻게 했는지가 아닌, 무엇을 왜 했는지 작성
- 꼬리말은 Git Issue ID를 명시하고자 할 때 작성
제목
먼저 제목 파트는 "태그: 제목" 형태로 구성된다
1. 태그
- 태그의 첫 문자는 대문자
- 태그는 반드시 영어로 작성한다
- ":" 뒤에만 띄어쓰기 적용
- 추가적인 문맥 정보 제공을 위해 괄호 사용 가능
태그 종류
- 기능 ( Feat ~ !BREAKING CHANGE )
- 개선 ( Style ~ Comment )
- 그 외 ( Docs ~ Remove )
2. 제목
- 마지막에 특수문자는 삽입하지 않는다
- 총 글자 수는 50자 이내로 작성
- 제목의 처음은 동사 원형으로 시작
영어일 경우
- 첫 글자는 대문자
- "Fix", "Add" 등의 명령어로 시작
한글일 경우
본문( Optional )
- 한줄 당 72자 내로 작성
- 최대한 상세히 작성
- 어떻게 변경 X → 무엇을 왜 변경했는지 O
꼬리말( Optional )
- "유형: #이슈 번호" 형태로 작성
- 여러 개의 이슈 번호를 적을 때는 쉼표로 구분
이슈 유형
- Fixes: 이슈 수정중 (아직 해결되지 않은 경우)
- Resolves: 이슈를 해결했을 때 사용
- Ref: 참고할 이슈가 있을 때 사용
- Related to: 해당 커밋에 관련된 이슈번호 (아직 해결되지 않은 경우)
https://overcome-the-limits.tistory.com/entry/협업-협업을-위한-기본적인-git-커밋컨벤션-설정하기
https://webruden.tistory.com/486
https://doublesprogramming.tistory.com/256