-
Notifications
You must be signed in to change notification settings - Fork 0
Commit Message Guidelines
emayom edited this page Apr 12, 2024
·
4 revisions
샐핀오프(salpinoff) 개발팀에서 사용하는 커밋 컨벤션입니다. 규칙은 husky와 함께 lint-staged를 사용하여 확인됩니다.
<header>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
- 커밋 메시지의 어떤 행도 100자를 초과할 수 없습니다. 이는 GitHub 및 다른 Git 도구들에서 원활히 읽힐 수 있도록 하기 위함입니다.
- 커밋 메시지는 단일의 머리말(header), 본문(body) 그리고 꼬리말(footer)으로 구성되며 빈 줄로 구분됩니다.
-
header
는 필수 항목이며 Commit Message Header 형식을 준수해야 합니다. -
body
는 필수 항목이며 Commit Message Body 형식을 준수해야 합니다. -
footer
는 선택 항목이며 Commit Message Footer 형식은 ~ 구조에 대해 설명합니다.
<type>(<scope>): <short summary>
│ │ │
│ │ └─⫸ Summary in present tense. Not capitalized. No period at the end.
│ │
│ └─⫸ Commit Scope: e.g. animations|bazel|benchpress|common|compiler|compiler-cli|core|
│ elements|forms|http|language-service|localize|platform-browser|
│ platform-browser-dynamic|platform-server|router|service-worker|
│ upgrade|zone.js|packaging|changelog|docs-infra|migrations|
│ devtools
│
└─⫸ Commit Type: build|ci|docs|feat|fix|perf|refactor|test
-
<type>
및<summary>
필드는 필수이며, (<scope>
) 필드는 선택 사항입니다. - 명령형(imperative)과 현재 시제(present tense)를 사용합니다.
- 첫 글자를 대문자로 작성하지 않습니다.
- 마지막을 점(.)으로 마치지 않습니다.
반드시 다음 중 하나를 따릅니다:
- feat: 새로운 기능
- fix: 버그 픽스
- docs: 문서만 변경
- style: 프로덕션 코드의 변경 이외의 작업(formatting, missing semi colons, etc)
- refactor: 프로덕션 코드 리팩토링 또는 버그를 수정하거나 기능을 추가하지 않는 코드 변경
- test: 누락된 테스트 추가 또는 기존 테스트 수정
- perf: 성능 향상을 위한 코드 변경
- chore: 빌드 프로세스 변경 또는 문서 생성과 같은 보조 도구 및 라이브러리 변경
- build: 빌드 시스템 또는 외부 종속성(external dependencies)에 영향을 미치는 변경 사항
- ci: CI 구성 파일 및 스크립트 변경
빠르고 명확한 소통을 위해 <type>
과 상응하는 이모지(emoji)를 추가하여 표시합니다.
해당 작업은 Git Hooks를 통해 처리합니다.
-
feat: ✨
:sparkles:
-
fix: 🐛
:bug:
-
docs: 📝
:memo:
-
style: 🎨
:art:
-
refactor: ♻️
:recycle:
-
test: ✅
:white_check_mark:
-
perf: ⚡
:zap:
-
chore: 📦
:package:
-
build: 💚
:green_heart:
-
ci: 🔧
:wrench:
<scope>
는 영향을 받는 npm package의 이름이어야 합니다.
마찬가지로 명령형과 현재 시제를 사용합니다. ("fix" not "fixed" nor "fixes".)
커밋 메시지의 본문에서는 변경 동기를 설명합니다.
변경으로 인한 영향을 설명하기 위해 이전 동작과 새 동작을 비교를 포함할 수 있습니다.
커밋 메시지의 꼬리말에서는 breaking changes나 deprecations에 대한 정보를 포함합니다.
그리고 또한 GitHub issues, Jira tickets 및 기타 해당 commit으로 닫히거나 관련된 PR을 참조할 수 있는 곳입니다.
예시는 다음과 같습니다:
BREAKING CHANGE: <breaking change summary>
<BLANK LINE>
<breaking change description + migration instructions>
<BLANK LINE>
<BLANK LINE>
Fixes #<issue number>
혹은
DEPRECATED: <what is deprecated>
<BLANK LINE>
<deprecation description + recommended update path>
<BLANK LINE>
<BLANK LINE>
Closes #<pr number>
이전 커밋을 되돌리는 커밋의 경우, revert:
로 시작하며, 되돌린 커밋의 헤더로 이어져야 합니다.
커밋 메시지 본문의 내용은 다음을 포함해야 합니다:
- 다음과 같은 형식의 되돌리는 커밋 식별 SHA 정보:
This reverts commit <SHA>
- 커밋 메시지를 되돌리는 이유에 대한 명확한 설명
이 문서는 AngularJS Git Commit Message Conventions를 기반으로 합니다. 올바른 형식의 커밋 메시지의 예는 커밋 기록을 참조하세요.