커밋 스킬
변경사항을 분석하여 Conventional Commits 형식의 커밋 메시지를 자동 생성하고, 사용자 확인 후 커밋합니다.
사용법
code
/commit # 자동 메시지 생성 후 확인 /commit --all # 모든 변경사항 스테이징 후 커밋 /commit --message "feat: 기능" # 메시지 직접 지정
워크플로우
Step 1: 변경사항 분석
- •
스테이징 상태 확인:
git status --porcelain- •변경사항 없으면: "커밋할 변경사항이 없습니다" 안내 후 중단
- •
staged 변경사항 확인:
git diff --cached --stat- •staged 파일 없고 --all 미지정 시: unstaged 파일 목록 보여주고 스테이징 여부 확인
- •
변경 내용 분석:
git diff --cached(또는 --all 시git diff)- •변경된 파일들과 내용 파악
Step 2: 커밋 메시지 생성
--message 미지정 시 자동 생성:
- •
변경 유형 판단:
- •새 파일 추가 →
feat: - •버그 수정 →
fix: - •리팩토링 →
refactor: - •문서 수정 (.md 파일만) →
docs: - •스타일/포맷 변경 →
style: - •테스트 추가/수정 →
test: - •빌드/설정 변경 →
chore:
- •새 파일 추가 →
- •
메시지 형식:
code<type>: <간결한 설명 (한국어 또는 영어)> - 변경사항 1 - 변경사항 2
Step 3: 사용자 확인
AskUserQuestion으로 확인 요청:
code
커밋 메시지를 확인해주세요: --- feat: 새로운 기능 추가 - 파일1.ts 변경 - 파일2.ts 추가 --- 이 메시지로 커밋할까요?
선택지:
- •커밋 진행
- •메시지 수정 (사용자가 직접 입력)
- •취소
Step 4: 커밋 실행
- •
스테이징 (필요 시):
- •--all 옵션:
git add -A - •특정 파일만:
git add <files>
- •--all 옵션:
- •
커밋 실행:
bashgit commit -m "<message>"
- •
결과 출력:
code커밋 완료: <commit-hash> <commit-message 첫 줄>
Conventional Commits 타입
| 타입 | 설명 | 예시 |
|---|---|---|
| feat | 새 기능 | feat: 사용자 로그인 추가 |
| fix | 버그 수정 | fix: 버튼 클릭 오류 수정 |
| refactor | 리팩토링 | refactor: API 호출 로직 개선 |
| docs | 문서 수정 | docs: README 업데이트 |
| style | 포맷/스타일 | style: 코드 포맷팅 |
| test | 테스트 | test: 유닛 테스트 추가 |
| chore | 빌드/설정 | chore: 의존성 업데이트 |
에러 처리
| 상황 | 메시지 |
|---|---|
| 변경사항 없음 | 커밋할 변경사항이 없습니다 |
| git 저장소 아님 | git 저장소가 아닙니다 |
| 사용자 취소 | 커밋이 취소되었습니다 |