Git 커밋 메시지 컨벤션

Git 커밋 메시지 컨벤션

Author
Description
Created at
Aug 28, 2025 01:14 AM
Tags

목적

Git 커밋 메시지 컨벤션은 팀원 간의 협업을 원활하게 하고, 코드 변경 내역을 명확히 기록하기 위한 표준화된 작성 규칙입니다. 이를 통해 코드 리뷰, 디버깅, 변경 추적이 쉬워집니다.

기본 원칙

  • 명확성: 커밋 메시지는 변경 내용을 간결하고 명확하게 설명해야 합니다.
  • 일관성: 팀 전체가 동일한 형식을 따르도록 합니다.
  • 짧고 간결: 요점을 빠르게 전달할 수 있도록 간결하게 작성합니다.
  • 영어 또는 팀 언어: 팀의 언어 정책에 따라 영어 또는 한국어로 작성 (이 문서에서는 영어 기준으로 작성).

커밋 메시지 구조

커밋 메시지는 다음과 같은 구조를 따릅니다:
<타입>(<영향 범위>): <짧은 설명> <빈 줄> <상세 설명 (선택 사항)>

1. 타입 (Type)

커밋의 목적을 나타내는 접두사입니다. 아래는 일반적으로 사용되는 타입들입니다:
  • feat: 새로운 기능 추가
  • fix: 버그 수정
  • docs: 문서 수정 (README, API 문서 등)
  • style: 코드 포맷팅, 세미콜론 추가 등 (동작에 영향 없음)
  • refactor: 코드 리팩토링 (기능 변경 없이 코드 개선)
  • test: 테스트 추가/수정
  • chore: 기타 작업 (빌드, 설정 파일 수정 등)
  • build: 빌드 시스템 또는 외부 의존성 변경
  • ci: CI/CD 설정 변경
  • perf: 성능 개선

2. 영향 범위 (Scope)

커밋이 영향을 미치는 모듈, 파일, 또는 기능 영역을 명시합니다. 예:
  • auth: 인증 관련
  • ui: 사용자 인터페이스
  • api: API 관련
  • db: 데이터베이스
  • (구체적인 모듈/기능 이름 사용 가능)

3. 짧은 설명 (Subject)

  • 50자 이내로 간결하게 작성
  • 명령형 문장 사용 (예: "Add", "Fix", "Update")
  • 첫 글자는 대문자, 마침표는 생략
  • 예: Add user login validation

4. 상세 설명 (Body, 선택 사항)

  • 72자 이내로 줄바꿈
  • 변경 이유, 배경, 또는 세부 사항 설명
  • 불필요한 경우 생략 가능

5. 푸터 (Footer, 선택 사항)

  • 이슈 트래커 ID, 관련 PR 번호 등 추가 정보
  • 예: Closes #123, Related to #456

예시

기능 추가

feat(auth): Add JWT token validation Add middleware to validate JWT tokens for protected routes. Closes #123

버그 수정

fix(ui): Fix button alignment issue on mobile Correct CSS padding to align buttons properly on small screens.

문서 수정

docs(readme): Update installation instructions Add detailed steps for setting up the project locally.

리팩토링

refactor(api): Simplify user fetch logic Extract user fetch logic into a reusable service function.

기타 작업

chore(deps): Update package.json dependencies Bump lodash version to 4.17.21 for security patch.

추가 가이드라인

  • 커밋 단위: 하나의 커밋은 논리적으로 하나의 변경 사항만 포함해야 합니다.
  • 언어: 팀 정책에 따라 영어 또는 한국어 사용. 영어 사용 시 미국식 영어 권장.
  • 명확한 동사: "Add", "Fix", "Remove", "Update" 등 명확한 동사를 사용하세요.
  • 과거형 피하기: "Added" 대신 "Add"를 사용해 명령형 유지.
  • 이슈 연결: 가능하면 커밋 메시지에 관련 이슈 번호를 포함하세요.

도구 활용

  • 커밋 메시지 템플릿: .gitmessage 파일을 설정해 팀 표준을 자동 적용.
    • git config --global commit.template ~/.gitmessage
  • 린팅 도구: commitlint를 사용해 커밋 메시지 규칙을 강제.
  • IDE 플러그인: VS Code의 GitLens 또는 Commit Message Editor 활용.

참고