Skip to content

Latest commit

 

History

History
194 lines (136 loc) · 5.16 KB

File metadata and controls

194 lines (136 loc) · 5.16 KB

📝 WIKID 커밋 메시지 컨벤션

📋 개요

WIKID 프로젝트에서 사용하는 커밋 메시지 규칙입니다. 일관성 있고 읽기 쉬운 커밋 히스토리를 유지하기 위해 모든 팀원이 이 규칙을 따라주세요.

🔧 자동 검증

프로젝트에 commitlinthusky가 설정되어 있어 커밋 시 자동으로 규칙을 검증합니다.

  • ✅ 규칙에 맞는 커밋 → 성공
  • ❌ 규칙에 맞지 않는 커밋 → 자동 거부

📐 커밋 메시지 구조

<type>: <subject> (<issue-number>)
<BLANK LINE>
<body>

1️⃣ Type (커밋 유형)

규칙

  • 영어 소문자로만 작성
  • 허용된 타입만 사용 가능

허용된 커밋 유형

커밋 유형 의미 사용 예시
feat 새로운 기능 추가 feat: 로그인 기능 구현
fix 버그 수정 fix: 회원가입 폼 유효성 검사 오류 수정
docs 문서 변경 docs: API 문서 업데이트
style 코드 포맷팅 style: 들여쓰기 및 코드 스타일 정리
refactor 리팩토링 refactor: 로그인 컴포넌트 구조 개선
test 테스트 코드 test: 사용자 인증 테스트 추가
chore 빌드, 패키지 매니저 설정 등 chore: webpack 설정 변경

2️⃣ Subject (커밋 제목)

규칙

  • 세미콜론(:) 뒤에 공백 붙이기
  • 한글로 작성 가능
  • 띄어쓰기 가능
  • 마침표(.) 금지
  • 50자 이내로 작성
  • 명령문 형태로 작성 (현재 시제)

✅ 좋은 예시

feat: 사용자 프로필 편집 기능 추가
fix: 로그인 폼 유효성 검사 버그 수정
docs: 설치 가이드 내용 업데이트

❌ 나쁜 예시

FEAT: 기능추가                    # 대문자 사용
feat:로그인기능구현               # 세미콜론 뒤 공백 없음
feat: 로그인 기능을 구현했습니다.   # 마침표 사용
feat: 사용자 인증과 권한 관리 시스템을 완전히 새롭게 구현  # 50자 초과

3️⃣ Issue Number (이슈 번호)

규칙

  • 제목 뒤에 공백 붙이기
  • 괄호 안에서는 공백 없음
  • GitHub 이슈 번호와 연결

예시

feat: 로그인 페이지 구현 (#123)
fix: 회원가입 버그 수정 (#45)

4️⃣ Body (본문)

규칙

  • 제목과 본문을 빈 행으로 분리
  • 하이픈(-) 뒤에 공백 붙이고 작성
  • 한 줄 최대 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

📚 추가 자료