git 커밋 컨벤션 설정하기
다른 사람과 협업을 할 때, 어떻게 하면 더 쉽게 통일성과 체계적인 일처리를 위해 커밋 컨벤션을 정리할 수 있을까?
유다시티의 커밋 메시지 스타일 가이드를 참조한 내용!
1. Commit 메시지 구조
기본적인 커밋 메시지 구조는 제목 , 본문 , 꼬리말 세가지 파트로 나누고, 각 파트는 빈 줄을 두어 구분한다.
type : subject
body
fotter
Plain Text
복사
2. Commit Type
타입은 태그와 제목으로 구성되고, 태그는 영어로 쓰되, 첫 문자는 대문자로 한다.
태그 : 제목 의 형태이며, : 뒤에만 space가 있음에 유의한다.
•
feat : 새로운 기능 추가
•
fix : 버그 수정
•
docs : 문서 수정
•
style : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
•
refactor : 코드 리팩토링
•
test: 테스트 코드, 리팩토링 테스트 코드 추가
•
chore : 빌드 업무 수정, 패키지 매니저 수정
3. Subject
•
제목은 최대 50 글자가 넘지 않도록 하고, 마침표 및 특수 기호는 사용하지 않는다.
•
영문으로 표기하는 경우, 동사(원형)을 가장 앞에 두고, 첫 글자는 대문자로 표기한다 (과거 시제를 사용하지 않는다).
•
제목은 개조식 구문으로 작성한다 —> 완전한 서술형 문장이 아니라, 간결하고 요점적인 서술을 의미
* Fixed --> Fix
* Added --> Add
* Modified --> Modify
Plain Text
복사
4. Body
본문은 다음의 규칙을 지킨다
•
본문은 한 줄 당 72자 내로 작성한다.
•
본문 내용은 양에 구애받지 않고, 최대한 상세히 작성한다.
•
본문 내용은 어떻게 변경했는지 보다 무엇을 변경했는지 또는 왜 변경했는지를 설명한다.
5. footer
꼬릿말은 다음의 규칙을 지킨다
•
꼬리말은 optional 이고, 이슈 트래커 ID 를 작성한다.
•
꼬리말은 "유형: #이슈 번호" 형식으로 사용한다.
•
여러 개의 이슈 번호를 적을 때는, 쉼표( , ) 로 구분한다.
•
이슈 트래커 유형은 다음 중 하나를 사용한다.
◦
Fixes : 이슈 수정 중 (아직 해결되지 않은 경우)
◦
Resolves : 이슈를 해결했을 때 사용
◦
Ref : 참고할 이슈가 있을 때 사용
◦
Related to : 해당 커밋에 관련된 이슈 번호 (아직 해결되지 않은 경우)
ex) Fixes: #45 Related to: #34, #23
6. Commit 예시
Feat: "회원 가입 기능 구현"
SMS, 이메일 중복확인 API 개발
Resulves: #123
Ref: #456
Related to: #48, #45
Plain Text
복사
7. Commit Message Emogi
자주 쓰이는 대표적인 몇 가지 일부만 정리하였다.
Emogi | Description |
코드의 형식/구조를 개선할 때 | |
새 파일을 만들 때 | |
사소한 코드 또는 언어를 변경할 때 | |
성능을 향상시킬 때 | |
문서를 쓸 때 | |
버그 reporting할 때, @FIXME 주석 태그 삽입 | |
버그를 고칠 때 | |
코드 또는 파일 제거할 때, @CHANGED 주석 태그와 함께 | |
파일 구조를 변경할 때, 와 함꼐 사용 | |
코드를 리팩토링 할 때 | |
UI/style 개선 시 | |
♿️ | 접근성을 향상시킬 때 |
WIP (진행중인 작업)에 커밋, @REVIEW 주석 태그와 함께 사용 | |
New Release | |
버전 태그 | |
새로운 기능을 소개할 때 | |
️ | 새로운 아이디어, @IDEA 주석 태그 |
배포/개발작업 과 관련된 모든 것 |