Commit Message Convention이란?
- 프로젝트를 수정하여 Commit 할 때 Commit Message를 팀에서 미리 정한 규칙에 맞추어 일관성 있게 Commit Message를 작성하는 것을 말합니다.
Commit Message Convention의 중요성
- 일관성 있게 Commit Message를 작성하는 것은 여러 개발자들과의 협업에 있어서 매우 중요한 요소중 하나입니다. 새로운 기능 추가 및 변경 또는 버그를 수정할 때 이전 개발자가 관련된 코드를 Commit하면서 작성한 Commit Message를 확인하여 어떤 의도로 코드를 추가 및 수정하였는지 쉽게 파악하고 참고할 수 있기 때문입니다.
Commit Message Convention 작성
Commit Message Template
type : subject
body
footer
- 기본적으로 커밋 메시지는 제목/본문/꼬리말로 구분하여 작성합니다.
Commit Type
- feat : 새로운 기능 추가
- fix : 버그 수정
- refactor : 코드 리팩토링
- style : 코드 포멧팅, 세미콜론 누락 등의 로직에 변경이 없는 경우
- docs : 문서 (문서 추가, 수정, 삭제)
- test : 테스트 (테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없음)
- chore : 기타 변경사항 (빌드 스크립트 수정 등)
- design : CSS 등 사용자 UI 디자인 변경
- hotfix : 급하게 치명적인 버그를 고쳐야하는 경우
- rename : 파일 혹은 폴더명을 수정하거나 옮기는 작업만 하는 경우
- remove : 파일을 삭제하는 작업만 수행한 경우
Subject
- 제목은 50자를 넘기지 않고, 마침표를 붙이지 않습니다.
- 제목에는 commit 타입을 함께 작성합니다.
- 과거 시제를 사용하지 않고 명령어로 작성합니다.
- 제목의 첫 글자는 반드시 대문자로 씁니다.
Body
- 긴 설명이 필요한 경우에 작성합니다.
- 최대 75자를 넘기지 않도록 합니다.
- 어떻게 했는지가 아니라, 무엇을 왜 했는지를 작성합니다.
- 본문에 목록을 나타낼때는 "-"로 시작합니다.
Footer
- footer는 optional 이며, 이슈 트래커 ID를 작성합니다.
- 꼬리말은 "유형: #이슈 번호" 형식으로 사용합니다.
- 여러 개의 이슈 번호를 적을 때는 쉼표로 구분합니다.
git commit 템플릿 등록 방법
gitmessage.txt
### Subject
# 커밋 타입: 작업내용 (제목, 본문, 꼬리말은 한 줄 띄워주세요)
### body
# 본문
### footer
# (선택) 이슈번호 작성
# ------------------------------------------------------------------
#
# [커밋 타입] 리스트
#
# feat : 새로운 기능 추가
# fix : 버그 수정
# refactor : 코드 리팩토링
# style : 코드 포멧팅, 세미콜론 누락 등의 로직에 변경이 없는 경우
# docs : 문서 (문서 추가, 수정, 삭제)
# test : 테스트 (테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없음)
# chore : 기타 변경사항 (빌드 스크립트 수정 등)
# design : CSS 등 사용자 UI 디자인 변경
# hotfix : 급하게 치명적인 버그를 고쳐야하는 경우
# rename : 파일 혹은 폴더명을 수정하거나 옮기는 작업만 하는 경우
# remove : 파일을 삭제하는 작업만 수행한 경우
#
# ------------------------------------------------------------------
#
# [체크리스트]
#
# 1. Subject 작성 방법
#
# - 제목은 50자를 넘기지 않고, 마침표를 붙이지 않습니다.
# - 제목에는 commit 타입을 함께 작성합니다.
# - 과거 시제를 사용하지 않고 명령어로 작성합니다.
# - 제목의 첫 글자는 반드시 대문자로 씁니다.
#
#
# 2. Body 작성 방법
#
# - 긴 설명이 필요한 경우에 작성합니다.
# - 최대 75자를 넘기지 않도록 합니다.
# - 어떻게 했는지가 아니라, 무엇을 왜 했는지를 작성합니다.
# - 본문에 목록을 나타낼때는 "-"로 시작합니다.
#
#
# 3. Footer 작성방법
# - footer는 optional 이며, 이슈 트래커 ID를 작성합니다.
# - 꼬리말은 "유형: #이슈 번호" 형식으로 사용합니다.
# - 여러 개의 이슈 번호를 적을 때는 쉼표로 구분합니다.
#
#
# ------------------------------------------------------------------
gitmessage.txt 템플릿 등록
- 원하는 경로에
gitmessage.txt
파일을 생성 후git config --global commit.template <경로 + gitmessage.txt>
(<>은 제외) gitmessage.txt를 commit.template으로 등록하여 사용하면 됩니다.