Git Commit Convention
협업 시 원활한 소통을 위해 규칙에 맞는 Commit Message 작성이 필요하다.
기본적으로 제목만 간단히 입력할 경우 'git commit -m [type: subject]' 를 사용하고,
본문과 footer까지 작성할 경우 'git commit'을 사용한다. (작성 창으로 이동.)
기본 구조
type: subject (type 바로 옆에 콜론(:)을 붙인다)
body (생략가능)
footer (생략가능)
1. Type (커밋 종류)
| 타입명 | 설명 |
|---|
| feat | 새로운 기능 추가 |
| fix | 버그 수정 |
| docs | 문서 수정 |
| style | 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우 |
| refactor | 코드 리팩토링 |
| test | 테스트 코드, 리팩토링 테스트 코드 추가 |
| chore | 빌드 업무 수정, 패키지 매니저 수정, production code와 무관한 부분들(.gitignore, build.gradle 등) |
| comment | 주석 추가 및 변경 |
| remove | 파일, 폴더 삭제 |
| rename | 파일, 폴더명 수정 |
2. Subject (제목)
- 영어로 작성 시 동사원형을 가장 앞에 작성한다.
| 동사 원형 | 의미 |
|---|
| Add | 추가 |
| Remove | 삭제 |
| Simplify | 단순화 |
| Update | 보완 |
| Implement | 구현 |
| Prevent | 방지 |
| Move | 이동 |
| Rename | 이름 변경 |
- 제목은 최대 50자를 넘기지 않게 작성
- 마침표 및 특수기호는 사용하지 않음
3. body (본문)
- 한 줄당 72자 내로 작성
- 최대 글자 제한 없음. 최대한 상세하게 작성
- 어떻게 변경했는지 (X) → 무엇을 변경했는지, 왜 변경했는지 (O)
- "유형: #이슈 번호" 형식으로 작성
- 여러 개의 이슈 번호를 적을 경우 쉼표(,)로 구분
- 예시)
Fixes: #10
Related to: #13, #28
| 유형 | 의미 |
|---|
| Fixes | ~로부터 수정 중인 이슈(해결 중인 경우) |
| Resolves | ~로부터 해결된 이슈 |
| Ref | ~로부터 참고할 이슈 |
| Related to | 해당 커밋에 관련된 이슈(해결 중인 경우) |
사용 예시
Fix: Update Register Logic
Chore: Update .gitignore
.gitignore에 .classpath 추가
Feat: "회원가입 기능 구현"
회원 정보를 받아 DB에 저장
Resolves: #102
Relaed to: #82, #90