WIKID 프로젝트에서 사용하는 커밋 메시지 규칙입니다. 일관성 있고 읽기 쉬운 커밋 히스토리를 유지하기 위해 모든 팀원이 이 규칙을 따라주세요.
프로젝트에 commitlint와 husky가 설정되어 있어 커밋 시 자동으로 규칙을 검증합니다.
- ✅ 규칙에 맞는 커밋 → 성공
- ❌ 규칙에 맞지 않는 커밋 → 자동 거부
<type>: <subject> (<issue-number>)
<BLANK LINE>
<body>
- 영어 소문자로만 작성
- 허용된 타입만 사용 가능
| 커밋 유형 | 의미 | 사용 예시 |
|---|---|---|
feat |
새로운 기능 추가 | feat: 로그인 기능 구현 |
fix |
버그 수정 | fix: 회원가입 폼 유효성 검사 오류 수정 |
docs |
문서 변경 | docs: API 문서 업데이트 |
style |
코드 포맷팅 | style: 들여쓰기 및 코드 스타일 정리 |
refactor |
리팩토링 | refactor: 로그인 컴포넌트 구조 개선 |
test |
테스트 코드 | test: 사용자 인증 테스트 추가 |
chore |
빌드, 패키지 매니저 설정 등 | chore: webpack 설정 변경 |
- 세미콜론(
:) 뒤에 공백 붙이기 - 한글로 작성 가능
- 띄어쓰기 가능
- 마침표(
.) 금지 - 50자 이내로 작성
- 명령문 형태로 작성 (현재 시제)
feat: 사용자 프로필 편집 기능 추가
fix: 로그인 폼 유효성 검사 버그 수정
docs: 설치 가이드 내용 업데이트FEAT: 기능추가 # 대문자 사용
feat:로그인기능구현 # 세미콜론 뒤 공백 없음
feat: 로그인 기능을 구현했습니다. # 마침표 사용
feat: 사용자 인증과 권한 관리 시스템을 완전히 새롭게 구현 # 50자 초과- 제목 뒤에 공백 붙이기
- 괄호 안에서는 공백 없음
- GitHub 이슈 번호와 연결
feat: 로그인 페이지 구현 (#123)
fix: 회원가입 버그 수정 (#45)- 제목과 본문을 빈 행으로 분리
- 하이픈(
-) 뒤에 공백 붙이고 작성 - 한 줄 최대 100자
- 무엇을, 왜 변경했는지 설명
- 어떻게 변경했는지 상세 설명
feat: 사용자 프로필 편집 기능 추가
- 프로필 이미지 업로드 기능 구현
- 닉네임 및 소개글 수정 가능
- 실시간 미리보기 제공
- 폼 유효성 검사 추가feat: 위키 페이지 검색 기능 구현
- 실시간 검색어 자동완성 추가
- 검색 결과 하이라이팅 구현
- 검색 히스토리 저장 기능
- 검색 성능 최적화를 위한 디바운싱 적용fix: 게시글 목록 페이지네이션 버그 수정 (#67)
- 마지막 페이지에서 다음 버튼 비활성화 처리
- 페이지 번호 계산 로직 수정
- 빈 페이지 렌더링 방지style: 버튼 컴포넌트 스타일 통일--no-verify옵션으로 검증 건너뛰기- 여러 기능을 한 커밋에 포함
- 의미 없는 커밋 메시지 (
fix,update등)
- 한 커밋에는 한 가지 문제만 해결
- 커밋 단위를 작게 유지
- 팀원이 이해하기 쉽게 작성
- 대화형 커밋 도구 사용 권장
git add .
git commit -m "feat: 새로운 기능 추가"npm run commit
# 또는
npx git-cz대화형 도구를 사용하면 단계별로 안내를 받아 올바른 커밋 메시지를 작성할 수 있습니다.
프로젝트에 설정된 자동 검증 규칙:
- type-case: 소문자만 허용
- type-empty: 타입 필수
- subject-empty: 제목 필수
- subject-max-length: 제목 50자 제한
- subject-full-stop: 마침표 금지
- body-leading-blank: 제목과 본문 사이 빈 줄 필수
커밋이 거부될 때 표시되는 일반적인 에러:
✖ type must be lower-case
✖ subject may not be empty
✖ header must not be longer than 50 characters
✖ subject may not end with full stop