컨벤셔널 커밋(Conventional Commits)은 [[깃]] 등의 [[커밋]] 메시지에 변경 종류를 일정한 형식으로 쓰는 규약이다. 사람에게 변경 이유를 설명하면서 도구가 릴리스 노트나 버전 증가를 판단할 단서도 제공한다. 기본 형식은 `종류(선택적 범위): 설명`이다. ([컨벤셔널 커밋 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/)) - [공식 웹사이트](https://www.conventionalcommits.org/) ## 메시지의 구분 - `fix(viewer): 확대할 때 잘리는 캡션 수정`은 버그 수정의 예다. - `feat(search): 태그로 결과 좁히기`는 새 기능을 표시하는 예다. - 호환성을 깨는 변경은 종류·범위 뒤의 `!` 또는 푸터의 `BREAKING CHANGE:`로 표시한다. - `docs`나 `test` 같은 다른 종류도 사용할 수 있다. 이 종류만으로 특정한 버전 증가가 자동으로 정해지는 것은 아니다. [[시맨틱 버저닝]]과 연결할 때 `fix`는 패치, `feat`는 마이너, 호환성을 깨는 변경은 메이저 증가에 대응한다. 같은 형식을 썼더라도 실제 변경이 올바르게 분류됐는지는 별도로 검토해야 한다. ([규격과 버전 대응](https://www.conventionalcommits.org/en/v1.0.0/)) ## 기타 등등 - 규격은 특별히 달리 적지 않은 구성 요소의 대소문자를 구분하지 않지만, `BREAKING CHANGE`는 대문자로 써야 한다. [출처](https://www.conventionalcommits.org/en/v1.0.0/) - 컨벤셔널 커밋의 확장 규칙을 따로 배포한다면 그 확장에도 시맨틱 버저닝을 사용하라는 권고가 있다. 메시지의 규칙에도 버전이 붙는다. [출처](https://www.conventionalcommits.org/en/v1.0.0/) #규칙 #버전관리 #개발