1. 메세지 구조
1) 기본 형식
[type] (optional scope): [subject] (optional #issueNumber)
[optional body]
[optional footer]
2) 타입 (type) 종류
구분자 | 작업 유형 | 예 | 비고 |
feat | 새 기능 구현 | feat: 예치금 대량 충전 검색 기능 추가 (PP-2345) | |
fix | 버그 수정 | fix: 상점 목록의 에러처리 예외케이스 대응 (PP-2356) | |
release | 버전 변경 | release: v10.0.0 → v10.1.1 | |
docs | 문서(또는 주석) 관련 작업 | docs: 데코레이터 옵션에 대한 문서 추가 (PP-2345) | |
refactor | 리팩터링 | refactor: createStore의 함수를 작은 함수로 분리 (PP-2345) | |
test | 테스트 관련 작업 | test: 상점 생성 테스트 추가 (PP-2345) | |
chore | 패키지 매니저 수정,기타 작업 | chore: 프로덕션 빌드시 소스맵 생성하도록 변경 (PP-2334) | |
build | 빌드 관련 수정 | ||
ci | CI 관련 설정 수정 | ||
style | 코드 스타일, 포맷팅에 대한 수정 |
- feat: 새로운 기능을 추가하거나 기존의 기능을 요구 사항 변경으로 변경한 경우
기능 추가와 수정을 나누어서 쓰고 싶은 경우 아래 처럼 2개로 나누어서 타입을 지정할 수 있다.- new: 새로운 기능을 추가 한 경우
- improve: 기존 기능을 수정 한 경우, 요구 사항이 변경되어 수정된 경우에도 improve 타입으로 한다.
- fix: 기능상 버그 픽스를 했을 경우
- release: 릴리스를 하기 위해 패키지 버전을 올리거나, 릴리스 버전 커밋을 찍기 위한 경우
- docs: 문서(주석)의 추가/수정의 경우, 직접적인 코드의 변화 없이 순수하게 문서(주석)만 추가/수정했을 경우
- refactor: 기능의 변화가 아닌 코드를 리팩토링했을 경우, 코드 리뷰 등으로 로직(기능)의 변화 없이 단순 함수 내부에서만 사용하는 이름을 변경하였거나, 코드 pretty 등을 적용했을 경우
- test: 테스트 코드를 별도로 추가하거나, 변경했을 경우, 만약 기능을 추가하면서 테스트 코드를 동시에 작성했으면 feat 타입으로 사용
- chore: 기능/테스트 코드, 문서, 스타일, 리팩토링을 제외한, 배포, 빌드 등과 같이 프로젝트의 기타 작업들에 대해 추가/수정했을 경우, lint 등의 적용으로 코드 스타일을 수정 했을 때도 chore 사용
- style: UI를 추가/변경 하거나 스타일 관련 작업을 했을 경우
3) 제목 (Subject)
제목은 항시 입력해야 하며 반드시 타입과 함께 작성되어야 합니다.
개인/팀의 스타일에 따라 type과 Subject의 위치 또는 표현 방식(:대신 []로 감싼 다던가)은 마음껏 변경해도 됩니다. 다만, 반드시 제목은 작성해야 하며, 제목에는 type과 Subject가 함께 작성되어야 합니다.
1) [Subject] scope
- 선택사항이며, 변경된 부분을 직접적으로 표기한다.
- 함수가 변경되었으면 함수명, 메소드가 추가되었으면 클래스 명을 입력한다.
2) [Subject] subject
- 타입은 영문 소문자로 작성합니다.
- 첫 글자는 대문자로 입력한다.
- 마지막에는 .(period)을 찍지 않으며 영문 기준 최대 50자를 넘지 않는다.
- 제목은 명령문의 형태로 작성한다. (동사원형 사용)
- 제목은 해당 커밋에 대한 주요 내용을 간략하게 기록한다.
4)본문(body)
- 커밋에서 수정된 상세내역을 작성한다. 여기선 평서문으로 작성하면 된다.
- 어떻게 변경했는지보다, 무엇을 변경했고, 왜 변경했는지를 설명한다.
- 본문은 생략 가능하며, 제목(Subject) 라인과 반드시 한 줄을 띄운다.
- 되도록 한 줄에는 72자 이하로 작성하고 길어질 경우 개행해서 다음 줄에 입력한다.
- 수정 내역을 블릿 기호(*) 이용해서 하나씩 입력하는 방법도 좋다.
- 문장의 끝에 구두점(.)을 끝에 찍지 않습니다.
- 문장은 명사로 끝나야 합니다.
5) 꼬리말 (footer)
- 꼬리말은 생략 가능하며, 반드시 제목(Subject) 또는 본문(Body) 라인과는 반드시 한 줄을 띄운다.
- 꼬리말을 해당 커밋과 연관된 이슈 트래킹 번호를 입력한다.
- 제목에는 커밋이 온전히 한 개의 이슈에 해당하는 경우에만 추가해서 사용하고 그 외의 경우 대부분 꼬리말에 이슈 번호를 라벨과 함께 추가한다.
Resolves: #1234
See also: #1235, #1236
라벨의 종류
- Resolves: 문의나, 요청에 의한 이슈에 해당하는 경우 이슈 번호
- Closes: 일반적인 개발과 관련된 이슈에 해당하는 경우 이슈 번호
- Fixes: 버그 픽스, 핫 픽스 관련 이슈에 해당하는 경우 이슈 번호
- See also: 커밋의 이슈와 연관되어 있는 이슈들이 존재 하는 경우, 또는 관련된 이슈들이 있는 경우 이슈 번호
2. 커밋 작성 예
feat: 프렌즈 지원하기 버튼에 GA 이벤트 태그 추가 (#2345)
구글 광고를 지원하기 위해서 GA이벤트 태그가 아닌 구글 애드센스 추적 코드를 삽입합니다.
또한, 프렌즈 지원하기 버튼에 정의된 이벤트 태그를 보내는 기능을 추가합니다.
참고 :
'개발 > 형상관리' 카테고리의 다른 글
[Git] 소스트리 fatal : Could not read from remote repository. (0) | 2024.06.06 |
---|---|
[Git] git (0) | 2023.07.10 |
[Git] Git-flow (0) | 2023.02.19 |