Commit Skill
프로젝트의 커밋 컨벤션에 맞춰 변경사항을 분석하고, 적절한 커밋 메시지를 작성하여 커밋합니다.
커밋 컨벤션
code
<Type> <subject> <body>
Type (필수)
| Type | 설명 | 예시 |
|---|---|---|
Chore | package가 변경이 된 작업 | Chore bump version to 3.12.2 |
Add | 새로운 파일 추가 (새로운 화면, 새로운 hook 파일 생성 등) | Add 알림톡 발송 테이블 UI |
Update | 기존 코드 수정 (화면 수정, 비즈니스 로직 수정 등) | Update 배송희망일 기본 필터 범위 변경 |
Fix | 버그 픽스 | Fix 출고상품 수량 검증 로직 오류 수정 |
Hotfix | 핫픽스 (main 브랜치에서 바로 처리해야하는 급한 이슈) | Hotfix 주문 목록 렌더링 크래시 수정 |
Refactor | 리팩토링 (기능 변경 없이 코드 구조 개선) | Refactor 주문 필터 훅 분리 |
Remove | 파일 삭제 | Remove 선포장 관리 페이지 및 관련 코드 제거 |
Docs | 주석 및 간단한 문서 작업 | Docs README 업데이트 |
Subject (필수)
- •한글로 작성
- •마침표 없이
- •명령형으로 작성 (예: "추가", "수정", "개선", "제거")
Body (선택)
- •변경 이유와 맥락 설명이 필요한 경우 작성
- •줄바꿈으로 subject와 분리
워크플로우
1. 변경사항 분석 (병렬 실행)
bash
git status git diff --staged git diff git log --oneline -5
2. 스테이징 확인
이미 staged된 파일이 있는 경우:
- •staged된 파일만 커밋 대상으로 사용
- •"현재 staged된 파일로 커밋할까요?" 확인
staged된 파일이 없는 경우:
- •unstaged 변경 파일 목록 제시
- •사용자에게 질문: "어떤 파일을 커밋할까요?"
- •선택지:
전체,변경된 파일 목록 제시→ 답변에 따라git add실행
주의:
- •
.env,credentials, 시크릿 파일은 커밋 대상에서 제외 - •untracked 파일은 별도로 안내
3. 커밋 메시지 작성
변경사항을 분석하여 커밋 메시지 초안을 작성합니다.
Type 판단 기준:
| 변경 패턴 | Type |
|---|---|
| 새 파일 추가 (컴포넌트, 훅, 페이지 등) | Add |
| 기존 파일 수정 (기능 변경, UI 수정, 로직 수정) | Update |
| 버그 수정 | Fix |
| main 브랜치에서 긴급 수정 | Hotfix |
| 코드 구조 개선 (기능 변경 없음) | Refactor |
| 파일 삭제 (미사용 코드 제거) | Remove |
| package.json, 설정 파일 변경 | Chore |
| 주석, 문서 변경 | Docs |
복합 변경 시:
- •새 파일 추가 + 기존 파일 수정 → 주요 변경에 따라 결정
- •새 기능을 위한 파일 추가가 주이면
Add - •기존 코드 수정이 주이면
Update
4. 사용자 확인
code
## 커밋 메시지 초안
{Type} {subject}
{body (있을 경우)}
---
스테이징 파일:
- {파일 1}
- {파일 2}
이 메시지로 커밋할까요?
→ 사용자 승인 필수 — 승인 없이 커밋 금지
5. 커밋 실행
bash
git commit -m "$(cat <<'EOF'
{커밋 메시지}
EOF
)"
6. 결과
code
✅ 커밋 완료
커밋: {hash} {message}
변경 파일: {N}개
push가 필요하면 알려주세요.
주의
- •
--no-verify사용 금지 - •
--amend사용 시 사용자에게 명시적 확인 - •force push 절대 금지
- •시크릿 파일 커밋 방지
- •커밋 메시지는 반드시 HEREDOC으로 전달 (특수문자 안전)