커밋 스킬
변경 사항을 분석하고 Conventional Commits 형식으로 커밋한다.
커밋 타입
| 타입 | 용도 |
|---|---|
feat | 새로운 기능 추가 |
fix | 버그 수정 |
refactor | 기능 변경 없는 코드 구조 개선 |
style | 포맷팅, 세미콜론 등 코드 동작에 영향 없는 변경 |
docs | 문서 추가 또는 수정 |
test | 테스트 추가 또는 수정 |
chore | 빌드, 설정, 의존성 등 기타 변경 |
perf | 성능 개선 |
ci | CI/CD 설정 변경 |
수행 절차
1단계: 변경 사항 분석
다음 명령어를 병렬로 실행한다:
- •
git status— 변경된 파일 목록 확인 - •
git diff --staged및git diff— 변경 내용 확인 - •
git log --oneline -5— 최근 커밋 스타일 참고
2단계: 커밋 메시지 작성
형식: <타입>: <메시지>
규칙:
- •메시지는 하나의 의도만 담는다
- •변경된 내용(what)이 아니라 변경한 이유(why)를 중심으로 작성한다
- •한국어로 작성하고, 기술 용어는 영문 유지
- •간결하게 한 줄로 작성 (70자 이내 권장)
- •마침표를 붙이지 않는다
좋은 예:
- •
feat: 다크 모드 토글 추가 - •
fix: 로그인 시 토큰 만료 시간 미적용 문제 수정 - •
refactor: ClaimService에서 검증 로직 분리
나쁜 예:
- •
fix: 버그 수정— 어떤 버그인지 알 수 없음 - •
feat: 로그인 기능 추가 및 회원가입 페이지 리디자인— 두 가지 의도 혼재 - •
update: 코드 수정— 타입이 모호하고 의도 불명확
3단계: 스테이징 및 커밋
- •변경 의도에 해당하는 파일만 선별하여
git add한다 - •관련 없는 변경이 섞여 있으면 사용자에게 분리 커밋을 제안한다
- •
.env, 시크릿 파일 등 민감한 파일은 절대 스테이징하지 않는다
bash
git add <관련-파일들> git commit -m "$(cat <<'EOF' <타입>: <메시지> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> EOF )"
4단계: 결과 확인
- •
git status로 커밋 결과를 확인한다 - •pre-commit hook 실패 시: 문제를 수정하고 새로운 커밋을 생성한다 (--amend 금지)
인자 처리
- •
$ARGUMENTS가 있으면 해당 내용을 커밋 메시지의 기초로 사용한다 - •인자가 없으면 diff를 분석하여 메시지를 자동 생성한다
주의사항
- •
git push는 하지 않는다 (사용자가 명시적으로 요청한 경우에만) - •
--force,--no-verify등 위험한 플래그는 사용하지 않는다 - •변경 사항이 없으면 빈 커밋을 만들지 않는다