Updated: Jan 14, 2025Created: Jan 13, 20254 min read
Git 커밋 메시지 작성 가이드 정리
1. 커밋 메시지 구조
[type]: [summary][optional body][optional footer]
구성 요소:
[type]: 변경 사항의 유형 (예: feat, fix 등).
[summary]: 변경 내용을 간결하게 요약 (50자 이내).
Body (선택 사항): 변경 이유 및 세부 설명 (한 줄당 72자 이내).
Footer (선택 사항): 관련 이슈, 브레이킹 체인지 등 참고 정보.
2. 커밋 타입 (type)
타입
설명
예시
feat
새로운 기능 추가
feat: 사용자 로그인 기능 추가
fix
버그 수정
fix: 로그인 리다이렉트 문제 해결
docs
문서 변경
docs: 사용법 예시 README에 추가
style
코드 스타일 변경 (로직 변경 없음)
style: Prettier 포맷 적용
refactor
리팩토링 (기능 변경 없음)
refactor: 사용자 검증 로직 단순화
test
테스트 추가 또는 수정
test: 로그인 API 단위 테스트 추가
chore
유지보수 작업 (예: 의존성, CI/CD 설정 변경)
chore: npm 의존성 업데이트
build
빌드 시스템 변경 (예: webpack, npm)
build: Webpack 번들링 설정 추가
ci
CI/CD 구성 변경
ci: GitHub Actions 테스트 워크플로우 업데이트
3. 좋은 커밋 메시지 작성법
현재 시제 사용: “기능 추가” (Add)처럼 작성.
요약은 50자 이내로 작성.
본문 줄바꿈은 72자로 제한.
왜 변경했는지 설명: 변경 이유와 맥락을 포함.
관련 이슈 참조: 예: Closes #123 (이슈 자동 닫기).
4. 커밋 메시지 예시
간단한 예시
feat: 사용자 프로필 편집 기능 추가
상세한 예시
fix: 잘못된 입력에 대한 API 응답 상태 수정- 잘못된 요청에 대한 HTTP 상태를 200에서 400으로 변경- 경계 조건에 대한 단위 테스트 추가- Closes #123
5. Docker 관련 커밋 메시지 예시
예시 1: Docker Compose와 .dockerignore 업데이트
chore: Docker Compose 서비스 이름 변경 및 .dockerignore 추가- Docker Compose 서비스 이름을 더 명확하게 수정: - `frontend` -> `web` - `backend` -> `api`- 빌드 컨텍스트 최적화를 위해 .dockerignore 추가: - node_modules, 로그, pycache 등 불필요 파일 제외
예시 2: 이슈 참조 포함
chore: Docker 구성 개선 (#123)- docker-compose.yml에서 서비스 이름 수정: - `frontend` -> `web` - `backend` -> `api`- .dockerignore 추가로 빌드 컨텍스트 크기 감소: - 불필요한 파일 및 폴더 제외 (node_modules, 로그, 캐시 등)- Closes #123